MFC文档视图中窗口切换 (2012-05-11 18:32:48)
2013-07-25 15:05
351 查看
在文档试图应用程序,有时需要在工作区切换试图,以下就是如何切换试图了 1.创建要切换的视图类,同时把构造函数,Create函数改变为public 2.在需要切换试图的动作响应中,加入切换代码,一般是在CMainFrame的菜单响应中加: void CMainFrame::On32771() { // TODO: Add your command handler code here CView *pOldActiveView=GetActiveView();//旧视图 CMyView *pNewActiveView=new CMyView();//要切换的视图 CCreateContext context; context.m_pCurrentDoc=pOldActiveView->GetDocument();//关联到文档.为什么,文档视图,MFC中每个视图要对应一个文档 //创建视图并且关联到上下文中,IDD_MYVIEW为视图CMyView的ID号 pNewActiveView->Create(NULL,NULL,WS_CHILD | WS_BORDER,CFrameWnd::rectDefault,this,IDD_MYVIEW,&context); pNewActiveView->UpdateData(); //视图显示/隐藏 SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pOldActiveView->ShowWindow(SW_HIDE); //重新布局主框架 pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout(); delete pOldActiveView; } 3.想要切换回去,一样: CMyView *pOldActiveView=(CMyView *)GetActiveView();//旧视图 CChangeViewView *pNewActiveView=new CChangeViewView();//要切换的视图 CCreateContext context; context.m_pCurrentDoc=pOldActiveView->GetDocument();//关联到文档.为什么,文档视图,MFC中每个视图要对应一个文档 //创建视图并且关联到上下文中,IDD_MYVIEW为视图CMyView的ID号 pNewActiveView->Create(NULL,NULL,WS_CHILD | WS_BORDER,CFrameWnd::rectDefault,this,IDD_MYVIEW,&context); pNewActiveView->UpdateData(); //视图显示/隐藏 SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pOldActiveView->ShowWindow(SW_HIDE); //重新布局主框架 pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout(); delete pOldActiveView; 运行即可实现视图切换
相关文章推荐
- (转载)VS2010/MFC编程入门之四十一(文档、视图和框架:分割窗口)
- MFC单文档视图切换
- VS2013/MFC编程入门之三十八(文档、视图和框架:分割窗口)
- MFC 文档 视图 框架窗口间的关系 和消息传送规律
- 可切换视图的单文档静态分割窗口总结
- MFC 文档 视图 框架窗口间的关系 和消息传送规律
- 通过按钮控件实现MDI新建子窗口(MFC自动生成的视图、文档、子框架共用)
- MFC文档视图切换大全
- VC 2010 + MFC + MDI多文档视图框架:视图框架窗口激活的消息通知
- MFC基于单文档分割视图后子窗口点击编辑框获得相应的操作
- MFC单文档多视图的切换的3种实现
- 框架窗口和文档、视图的交互(MFC)
- MFC建立一个文档视图的工程,然后在窗口上显示数据
- 详解MFC框架窗口、文档和视图
- 单文档切分窗口中视图切换
- MFC文档、视图、框架窗口、文档模板之间的相互关系
- 切换多视图(mfc单文档程序)
- MFC单文档视图拆分窗口
- 《转》MFC单文档视图切换
- MFC SDI单文档多视图的实现及自由切换(2种实现方式简析)