怎样在MDI程序里面切换不同的 视图?

 
我在MDI里面建立了两个视图和两个文档,怎样从一个 视图切换到另外一个视图?
        CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CVideoConferenceDoc),
RUNTIME_CLASS(CVideoConferenceChildFrame), // custom MDI child frame
RUNTIME_CLASS(CVideoConferenceView1));
AfxGetApp()->AddDocTemplate(pDocTemplate);
pDocument1=pDocTemplate->OpenDocumentFile(NULL);


pDocTemplate = new CMultiDocTemplate(
IDR_VIEW,
RUNTIME_CLASS(CVideoConferenceDoc),
RUNTIME_CLASS(CVideoConferenceChildFrame), // custom MDI child frame
RUNTIME_CLASS(CVideoConferenceView2));
AfxGetApp()->AddDocTemplate(pDocTemplate);
pDocument2=pDocTemplate->OpenDocumentFile(NULL);
void CMainFrame::SwitchToForm(CRuntimeClass *pRTClass)
{
    m_wndSplitter_2.DeleteView(1,0);//删除旧的视图
CCreateContext Context;
    Context.m_pNewViewClass=pRTClass;//创建新视
Context.m_pCurrentDoc=GetActiveDocument();//与当前活动文档相连
m_wndSplitter_2.CreateView(1,0,pRTClass,CSize(0,0),&Context);
//更新视图
CView *pView=(CView*)m_wndSplitter_2.GetPane(1,0);//获取分割视图
pView->ShowWindow(SW_SHOW);

pView->OnInitialUpdate();
SetActiveView(pView);
m_wndSplitter_2.RecalcLayout();
}
通过pDocTemplate用函数GetFirstDocPosition和GetNextDoc找到你的CDocument指针pDoc
然后通过pDoc用函数GetFirstViewPosition和GetNextView找到你的视类指针pView,
CMDIChildWnd * pFrm=(CMDIChildWnd *) pView->GetParentFrame();
if(pFrm)
{
  pFrm->MDIActivate(); //激活它就行了
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值