现在打开了两个文档,对应两个视图,记为lview和Rview,
现在需要在用户点击菜单后,分别从两个视图上点一个点出来,应该如何去做?

解决方案 »

  1.   

    http://www.czvc.com/down.asp?id=10
    http://dev.csdn.net/article/12/12693.shtm
      

  2.   

    我的意思是
    一个多文档界面
    其中有两个ldoc和rdoc,
    分别对应两个视,
    现在lview为激活的,
    我想把rview变为激活,
      

  3.   

    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();
    }
      

  4.   

    1 CFrameWnd::SetActiveView 
    2 CWnd::SetActiveWindow
    3 SetActiveWindow
    试试这些函数