在sdi工程中添加了一个新的视图后。怎样切换新视图和老视图!

解决方案 »

  1.   

    如下是我曾经编写过的程序的一部分,我用BOOL CurView来控制切换到某个视图
    void CMainFrame::SwitchToView(BOOL CurView)
    {//HTML视图不用重建,CURVE视图应该重建 CView *pHtml,*pCurve,*pTemp;
    CDocument *pDoc;
    pHtml=pCurve=NULL;
    pDoc=GetActiveDocument();
    POSITION pos=pDoc->GetFirstViewPosition ();
    while(pos){
    pTemp=pDoc->GetNextView (pos);
    if(pTemp->IsKindOf (RUNTIME_CLASS(CSwatchView))) pHtml=pTemp;

    if(pTemp->IsKindOf (RUNTIME_CLASS(CCurveView)))
    pCurve=pTemp;
    }
    if(pCurve==NULL){
    pCurve=new CCurveView;
    /* pCurve->Create(NULL, NULL, WS_BORDER,
                CFrameWnd::rectDefault, this,4, CurContext);*/
    pCurve->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW,
    rectDefault, this, AFX_IDW_PANE_FIRST + 1, NULL);
    pDoc->AddView (pCurve);
       }
    if(CurView){//html视图
    int nID=pHtml->GetDlgCtrlID ();
    pHtml->SetDlgCtrlID (AFX_IDW_PANE_FIRST);
    pCurve->SetDlgCtrlID (nID);
    pHtml->ShowWindow (SW_SHOW);
    pCurve->ShowWindow (SW_HIDE);
    }
    else{//曲线视图
    int nID=pCurve->GetDlgCtrlID ();
    pCurve->SetDlgCtrlID (AFX_IDW_PANE_FIRST);
    pHtml->SetDlgCtrlID (nID);
    pHtml->ShowWindow (SW_HIDE);
    pCurve->ShowWindow (SW_SHOW);
    } RecalcLayout();}