vc中单文档程序切换不同视图

来源:互联网 发布:java md5加密 32位 编辑:程序博客网 时间:2024/05/21 21:37
void CMainFrame::SwitchViews(int nForm){CView* pOldView = GetActiveView();CView* pNewView;CCreateContext cc;cc.m_pCurrentDoc = pOldView->GetDocument();CString title;switch(nForm){case IDD_NEWFORM:pNewView = (CView*) new CNewform;title+=_T("New form");break;case IDD_CHANGEFORM2_FORM:pNewView = (CView*) new Cchangeform2View;title+= _T("Original view");break;}pNewView->Create(NULL,NULL,NULL,CFrameWndEx::rectDefault,this,nForm,&cc);pNewView->OnInitialUpdate();SetActiveView(pNewView);pNewView->ShowWindow(SW_SHOW);SetWindowLong(pNewView->m_hWnd,GWL_ID,AFX_IDW_PANE_FIRST);//RecalcLayout();pOldView->DestroyWindow();SetWindowText(title);RecalcLayout();}void CMainFrame::OnMenuOrig(){// TODO: 在此添加命令处理程序代码CView *pOldView=(CView *)GetActiveView();if (pOldView->GetRuntimeClass()==RUNTIME_CLASS(Cchangeform2View)){return;}SwitchViews(IDD_CHANGEFORM2_FORM);}void CMainFrame::OnNewView(){// TODO: 在此添加命令处理程序代码CView *pOldView=(CView *)GetActiveView();if (pOldView->GetRuntimeClass()==RUNTIME_CLASS(CNewform)){return;}SwitchViews(IDD_NEWFORM);}