主视里有两个按钮,点击按钮将弹出一个基于CFormView的视图,点击另一个按钮弹出另一个视图,这两个视图层叠在主视图上,并可通过鼠标点选切换.如何实现?
求教各位高手!

解决方案 »

  1.   

    http://www.enadd.com/Soft/UploadSoft/200701/20070104232644597.rar
      

  2.   

    void CMainFrame::SwitchToForm(int nForm)
    {    CView *pOldActiveView=GetActiveView();
        CView *pNewActiveView=(CView*)GetDlgItem(nForm);    if(pNewActiveView==NULL)
        {
            if(nForm==IDD_LIBRARY_FORM)
            {
                pNewActiveView=(CView*)new CLibraryView;
            }
            if(nForm==IDD_BOOKINFO_FORM)
            {
                pNewActiveView=(CView*)new CBookInfoView;
            }
            if(nForm==IDD_PROVIDER_FORM)
            {
                pNewActiveView=(CView*)new CProviderView;
            }        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);    int ID;    if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CLibraryView))
            ID=IDD_LIBRARY_FORM;
        if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CBookInfoView))
            ID=IDD_BOOKINFO_FORM;
        if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CProviderView))
            ID=IDD_PROVIDER_FORM;    pOldActiveView->SetDlgCtrlID(ID);
        pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);    RecalcLayout();}