弱弱的问,如何切换两个视 现在打开了两个文档,对应两个视图,记为lview和Rview,现在需要在用户点击菜单后,分别从两个视图上点一个点出来,应该如何去做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.czvc.com/down.asp?id=10http://dev.csdn.net/article/12/12693.shtm 我的意思是一个多文档界面其中有两个ldoc和rdoc,分别对应两个视,现在lview为激活的,我想把rview变为激活, void MyFormChange(int nForm){ CView* pOldActiveView = GetActiveView(); CView* pNewActiveView = (CView*)GetDlgItem(nForm); if(pNewActiveView == NULL) { switch (nForm) { case IDW_MyFORM1: pNewActiveView = (CView*)new CMyView1; break; case IDW_MyFORM2: pNewActiveView = (CView*)new CMyView2; break; case IDW_MyFORM3: pNewActiveView = (CView*)new CMyView3; break; // ………… } //初始化新切换的视图 CCreateContext context; context.m_pCurrentDoc = pOldActiveView->GetDocument(); pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault, this,nForm,&context); pNewActiveView->OnInitialUpdate(); } //显示新切换的视图 SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pOldActiveView->ShowWindow(SW_HIDE); if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMyView1)) pOldActiveView->SetDlgCtrlID(IDW_MyFORM2); else if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMyView2)) pOldActiveView->SetDlgCtrlID(IDW_MyFORM2); else if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMy3View)) pOldActiveView->SetDlgCtrlID(IDW_MyFORM3); else // ………… pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); RecalcLayout();} 1 CFrameWnd::SetActiveView 2 CWnd::SetActiveWindow3 SetActiveWindow试试这些函数 如何根据CListCtrl列表单元不同内容,来显示单元格中不同的文字颜色或者背景色? 如何获取局域网内的所有数据源? vc注释的问题 //##ModelId=3B70A76902BD //sizeof == 12这样的注释是怎么生成的? 基于对话框的程序最小化后再最大化图片和数据不见了! 大家来看看,关于ListControl的奇怪的事 如何处理编辑操作的Undo/Redo功能? 请问:关于用vc编写电子邮件。。。 这段代码如何理解? 急!请大家告知用sdk在窗口上画button的例子 afx ini Line157如何解决? 请教如何获得EDITBOX里的值 请教一个界面颜色的问题,谢谢!
http://dev.csdn.net/article/12/12693.shtm
一个多文档界面
其中有两个ldoc和rdoc,
分别对应两个视,
现在lview为激活的,
我想把rview变为激活,
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*)GetDlgItem(nForm);
if(pNewActiveView == NULL)
{
switch (nForm)
{
case IDW_MyFORM1:
pNewActiveView = (CView*)new CMyView1;
break;
case IDW_MyFORM2:
pNewActiveView = (CView*)new CMyView2;
break;
case IDW_MyFORM3:
pNewActiveView = (CView*)new CMyView3;
break;
// …………
}
//初始化新切换的视图
CCreateContext context;
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,
this,nForm,&context);
pNewActiveView->OnInitialUpdate();
}
//显示新切换的视图
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMyView1))
pOldActiveView->SetDlgCtrlID(IDW_MyFORM2);
else
if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMyView2))
pOldActiveView->SetDlgCtrlID(IDW_MyFORM2);
else
if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CMy3View))
pOldActiveView->SetDlgCtrlID(IDW_MyFORM3);
else
// …………
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
2 CWnd::SetActiveWindow
3 SetActiveWindow
试试这些函数