这样的单文档切换是怎么弄的?【电驴界面】

mxzy7783385 2010-01-07 12:49:59
我只知道切割窗体是在CMainFrame中的OnCreateClient用CSplitterWnd切
如图这种切换该怎么写喃?


一按按钮,切换为另一种分割视图

...全文
204 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmilmf 2010-01-07
  • 打赏
  • 举报
回复
上面的按钮使用的是属性页控件,或者用按钮代替的伪属性页控件
下面就是使用CSplitterWn切割试图
项左边的树型控件和列表视图mfc都自带的,觉得不好看,自绘!
sb3day 2010-01-07
  • 打赏
  • 举报
回复
单文档切换代码:
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(); //调整框架窗口
}
vclongking 2010-01-07
  • 打赏
  • 举报
回复
感觉楼上说的方法可行 切换view还真的没做过呢
学习
用户 昵称 2010-01-07
  • 打赏
  • 举报
回复
电驴怎么弄的不知道,网上找过能切换view的代码。
clever101 2010-01-07
  • 打赏
  • 举报
回复
电驴开源的,下载源码分析一下就知道了。
metree 2010-01-07
  • 打赏
  • 举报
回复
电驴好像提供源代码的吧,vs开发的,他们应该提供下载的
mxzy7783385 2010-01-07
  • 打赏
  • 举报
回复
up一次~~
mxzy7783385 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mmilmf 的回复:]
上面的按钮使用的是属性页控件,或者用按钮代替的伪属性页控件
下面就是使用CSplitterWn切割试图
项左边的树型控件和列表视图mfc都自带的,觉得不好看,自绘!
[/Quote]
我觉得应该是单文档程序吧,上面按钮式工具栏,不管这个了,主要是问这两种CSplitterWnd切割的视图怎么切换?
因为以我的水平在CMainFrame中的OnCreateClient用CSplitterWnd切了我就觉得定型了,不知道怎么换咯~~

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧