我想点击菜单时相应的改变窗口的视窗(使用不同的view类)应该怎么做?

解决方案 »

  1.   

    void CMainFrame::CreateAllViews()
    {
    CCreateContext mContext;

    //系统启动的当前视即为资源编辑视
    m_pResEditView=(CAWGToolView *) GetActiveView();
    m_pActiveView=m_pResEditView;
    m_ActViewID=ID_VIEW_RESEDIT;
    mContext.m_pCurrentDoc=(CDocument*)m_pResEditView->GetDocument();
    CAWGToolDoc *pDoc=(CAWGToolDoc *)(m_pResEditView->GetDocument());

    //创建地图编辑视
    m_pMapEditView=(CMapEditView *) new CMapEditView;
    m_pMapEditView->Create(NULL,NULL,WS_BORDER|WS_CHILD,CFrameWnd::rectDefault,this,ID_VIEW_MAPEDIT,&mContext);
    }//切换到map视
    void CMainFrame::OnMapedit() 
    {
    if(m_ActViewID==ID_VIEW_MAPEDIT)return;
    m_pActiveView->SetDlgCtrlID(m_ActViewID);
    m_pActiveView->ShowWindow(SW_HIDE);
    SetActiveView(m_pMapEditView);
    m_pMapEditView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    m_pMapEditView->ShowWindow(SW_SHOW);
    m_pActiveView=m_pMapEditView;
    m_ActViewID=ID_VIEW_MAPEDIT;
    RecalcLayout();

    }//切换到res视
    void CMainFrame::OnResedit() 
    {
    if(m_ActViewID==ID_VIEW_RESEDIT)return;
    m_pActiveView->SetDlgCtrlID(m_ActViewID);
    m_pActiveView->ShowWindow(SW_HIDE);
    SetActiveView(m_pResEditView);
    m_pResEditView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    m_pResEditView->ShowWindow(SW_SHOW);
    m_pActiveView=m_pResEditView;
    m_ActViewID=ID_VIEW_RESEDIT;
    RecalcLayout();
    }