这样的单文档切换是怎么弄的?【电驴界面】 我只知道切割窗体是在CMainFrame中的OnCreateClient用CSplitterWnd切如图这种切换该怎么写喃?一按按钮,切换为另一种分割视图 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上面的按钮使用的是属性页控件,或者用按钮代替的伪属性页控件下面就是使用CSplitterWn切割试图项左边的树型控件和列表视图mfc都自带的,觉得不好看,自绘! 我觉得应该是单文档程序吧,上面按钮式工具栏,不管这个了,主要是问这两种CSplitterWnd切割的视图怎么切换?因为以我的水平在CMainFrame中的OnCreateClient用CSplitterWnd切了我就觉得定型了,不知道怎么换咯~~ 电驴怎么弄的不知道,网上找过能切换view的代码。 感觉楼上说的方法可行 切换view还真的没做过呢 学习 单文档切换代码:void CMainFrame::SwitchToForm(int nForm) //进行视图切换的代码函数{ //CDocument* pDoc = GetActiveDocument(); CView *pOldActiveView=GetActiveView(); //保存旧视图 CView *pNewActiveView=(CView*)GetDlgItem(nForm); //取得新视图 if(pNewActiveView==NULL) { switch(nForm) //这些ID是对话框的标志符,但也可以用其他的标志 { case IDD_XUANKE_FORM : pNewActiveView=(CView*)new CXuankeView; break; case IDD_DLG_GRADE : pNewActiveView=(CView*)new CGradeView; break; case IDD_DLG_ADMIN : pNewActiveView=(CView*)new CAdminView; break; case IDD_DLG_TEACHER : pNewActiveView=(CView*)new CTeacherView; break; case IDD_DLG_ADDCLASS : pNewActiveView=(CView*)new CAddclassView; break; } CCreateContext context; //将文挡和视图相连 context.m_pCurrentDoc=pOldActiveView->GetDocument(); pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_GROUP |WS_CHILD , CFrameWnd::rectDefault, this, nForm, &context); pNewActiveView->OnInitialUpdate(); } SetActiveView(pNewActiveView); //改变活动的视图 pNewActiveView->ShowWindow(SW_SHOW); //显示新的视图 pOldActiveView->ShowWindow(SW_HIDE); //隐藏旧的视图 if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CXuankeView)) pOldActiveView->SetDlgCtrlID(IDD_XUANKE_FORM); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CGradeView)) pOldActiveView->SetDlgCtrlID(IDD_DLG_GRADE); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CAdminView)) pOldActiveView->SetDlgCtrlID(IDD_DLG_ADMIN); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CTeacherView)) pOldActiveView->SetDlgCtrlID(IDD_DLG_TEACHER); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CAddclassView)) pOldActiveView->SetDlgCtrlID(IDD_DLG_ADDCLASS); pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); delete pOldActiveView; //删除旧视图 RecalcLayout(); //调整框架窗口} 一段IE控件的代码出错了。 又一个控件重叠问题 加速键问题 问一个关于CDWordArray类的问题 在TC下如何判断文件是否存在? 我问一个问题,大家帮忙. 局域网上网如何自动检测代理服务器地址? 有关CreateService不能启动服务的问题! 我在主对话框上嵌了一个子对话框,想使子对话框响应组合快捷鍵如Ctrl+s,Ctrl+v等,如何做?急! 我想录制VCD将.avi转换成.mpg形式,请推荐一个好的转换工具。要求:1,速度快;2,方便好用。一经采用, 60分奉送。 宽屏与窄屏的显示问题! 求救:如何使用键盘命令来响应对话框消息
下面就是使用CSplitterWn切割试图
项左边的树型控件和列表视图mfc都自带的,觉得不好看,自绘!
因为以我的水平在CMainFrame中的OnCreateClient用CSplitterWnd切了我就觉得定型了,不知道怎么换咯~~
学习
{
//CDocument* pDoc = GetActiveDocument();
CView *pOldActiveView=GetActiveView(); //保存旧视图
CView *pNewActiveView=(CView*)GetDlgItem(nForm); //取得新视图
if(pNewActiveView==NULL)
{
switch(nForm)
//这些ID是对话框的标志符,但也可以用其他的标志
{
case IDD_XUANKE_FORM :
pNewActiveView=(CView*)new CXuankeView;
break;
case IDD_DLG_GRADE :
pNewActiveView=(CView*)new CGradeView;
break;
case IDD_DLG_ADMIN :
pNewActiveView=(CView*)new CAdminView;
break;
case IDD_DLG_TEACHER :
pNewActiveView=(CView*)new CTeacherView;
break;
case IDD_DLG_ADDCLASS :
pNewActiveView=(CView*)new CAddclassView;
break;
}
CCreateContext context; //将文挡和视图相连
context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_GROUP |WS_CHILD ,
CFrameWnd::rectDefault, this, nForm, &context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView); //改变活动的视图
pNewActiveView->ShowWindow(SW_SHOW); //显示新的视图
pOldActiveView->ShowWindow(SW_HIDE); //隐藏旧的视图 if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CXuankeView))
pOldActiveView->SetDlgCtrlID(IDD_XUANKE_FORM); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CGradeView))
pOldActiveView->SetDlgCtrlID(IDD_DLG_GRADE); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CAdminView))
pOldActiveView->SetDlgCtrlID(IDD_DLG_ADMIN); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CTeacherView))
pOldActiveView->SetDlgCtrlID(IDD_DLG_TEACHER);
else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CAddclassView))
pOldActiveView->SetDlgCtrlID(IDD_DLG_ADDCLASS);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
delete pOldActiveView; //删除旧视图
RecalcLayout(); //调整框架窗口
}