如何实现视图的切换? 比如显示10个View,怎么实现。第一次来,请大家关照,THX 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那要看你如何组织View的代码了,随意性很大,就是说怎么作都行通常可能需要你维护一个指针列表或者别的什么的东西 GetActiveView()不是取得当前视图吗,但是获得别的视图呢?谢谢。 我这有个例子你可以参考一下:有三个View: CView1,CView2,CView3三个View指针: m_pView1,m_pView2,m_pView3首先创建视图BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { SetActiveView(m_pView1); m_pView1->ShowWindow(SW_SHOW); m_pView1->SetDlgCtrlID(AFX_IDW_PANE_FIRST); m_pView2 = new CView2; m_pView2->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0,0,0),this,VIEW_2,pContext); m_pView2->ShowWindow(SW_HIDE); m_pView2->SetDlgCtrlID(VIEW_2); m_pView3 = new CView3; m_pView3->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0,0,0),this,VIEW_3,pContext); m_pView3->ShowWindow(SW_HIDE); m_pView3->SetDlgCtrlID(VIEW_3); return true;}切换视图void CMainFrame::OnChangeview() { CView* pOldActiveView = GetActiveView(); CView* pNewActiveView; switch(m_nView) { case 1: pNewActiveView = (CView*)m_pView1; break; case 2: pNewActiveView = (CView*)m_pView2; break; case 3: pNewActiveView = (CView*)m_pView3; break; } SetActiveView(pNewActiveView); pNewActiveView->ShowWindow(SW_SHOW); pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); pOldActiveView->ShowWindow(SW_HIDE); pOldActiveView->SetDlgCtrlID(m_nView); m_nView = (m_nView + 1) % 3; RecalcLayout();} 想和人结伴学mfc 问关于对话条中Picture Control的问题 [求助]怎么在程序中解除屏幕保护 关于SimpleSocket 如何用mciSendCommand()/mciSendString() 函数指定声卡播放音乐 如何实现联众那样异地服务器的数据共享 了解深圳康佳的请进来说上两句话。 NetMeeting 关于设定CListCtrl的Item的高度的问题 ****CAsyncSocket派生类在线程中关闭出错**** 在工具栏按“打开”按钮,选择同一文件时,都能执行文挡类的序列化中的代码,怎样做?? 卸载程序是如何实现:卸载程序执行完毕卸载程序被删除,
谢谢。
有三个View: CView1,CView2,CView3
三个View指针: m_pView1,m_pView2,m_pView3
首先创建视图
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
SetActiveView(m_pView1);
m_pView1->ShowWindow(SW_SHOW);
m_pView1->SetDlgCtrlID(AFX_IDW_PANE_FIRST); m_pView2 = new CView2;
m_pView2->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0,0,0),this,VIEW_2,pContext);
m_pView2->ShowWindow(SW_HIDE);
m_pView2->SetDlgCtrlID(VIEW_2); m_pView3 = new CView3;
m_pView3->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0,0,0),this,VIEW_3,pContext);
m_pView3->ShowWindow(SW_HIDE);
m_pView3->SetDlgCtrlID(VIEW_3); return true;
}切换视图
void CMainFrame::OnChangeview()
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView;
switch(m_nView)
{
case 1:
pNewActiveView = (CView*)m_pView1;
break;
case 2:
pNewActiveView = (CView*)m_pView2;
break;
case 3:
pNewActiveView = (CView*)m_pView3;
break;
}
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
pOldActiveView->ShowWindow(SW_HIDE);
pOldActiveView->SetDlgCtrlID(m_nView);
m_nView = (m_nView + 1) % 3;
RecalcLayout();
}