比如显示10个View,怎么实现。第一次来,请大家关照,THX

解决方案 »

  1.   

    那要看你如何组织View的代码了,随意性很大,就是说怎么作都行通常可能需要你维护一个指针列表或者别的什么的东西
      

  2.   

    GetActiveView()不是取得当前视图吗,但是获得别的视图呢?
    谢谢。
      

  3.   

    我这有个例子你可以参考一下:
    有三个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();
    }