目的:
在单文档中点击下拉菜单项(“读”、“写”、“装载”)切换多个视图(3个对话框:IDD_READDLG,IDD_WRITEDLG,IDD_LOADDLG)。
我参照一个网上教程作的,但是当我点击菜单却得不到响应,初始也没有切换到开始设置的对话框。
程序代码如下:BOOL CGenaralReaderApp::InitInstance()
{

CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CGenaralReaderDoc),
RUNTIME_CLASS(CMainFrame),       // main SDI frame window
RUNTIME_CLASS(CReadDlg));
AddDocTemplate(pDocTemplate);

}
void CMainFrame::SwitchToForm(int nForm)
{
    CView *pOldActiveView=GetActiveView();             //保存旧视图
    CView *pNewActiveView=(CView*)GetDlgItem(nForm);   //取得新视图
    if(pNewActiveView==NULL)
    {
        switch(nForm)
{
        case IDD_READDLG :
            pNewActiveView=(CView*)new CReadDlg;
            break;
        case IDD_WRITEDLG :
            pNewActiveView=(CView*)new CWriteDlg;
            break;
        case IDD_LOADDLG :
            pNewActiveView=(CView*)new CLoadDlg;
            break;
 
        }
        CCreateContext context;   //将文挡和视图相连
        context.m_pCurrentDoc=pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD ,
        CFrameWnd::rectDefault, this, nForm, &context);
pNewActiveView->OnInitialUpdate();
 }
SetActiveView(pNewActiveView);        //改变活动的视图
pNewActiveView->ShowWindow(SW_SHOW);  //显示新的视图
pOldActiveView->ShowWindow(SW_HIDE);  //隐藏旧的视图    if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CReadDlg))
pOldActiveView->SetDlgCtrlID(IDD_READDLG); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CWriteDlg))
pOldActiveView->SetDlgCtrlID(IDD_WRITEDLG); else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CLoadDlg))
pOldActiveView->SetDlgCtrlID(IDD_LOADDLG);
    pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    
     delete pOldActiveView;   //删除旧视图 RecalcLayout();          //调整框架窗口}
void CMainFrame::OnRead() 
{
SwitchToForm(IDD_READDLG);
}void CMainFrame::OnLoad() 
{
SwitchToForm(IDD_LOADDLG);
}void CMainFrame::OnWrite() 
{
SwitchToForm(IDD_WRITEDLG);}
请大虾们指点迷津。