void CMyApp::OnAppAbout()和void CMainFrame::OnAppAbout()有和区别?
我添加了一个对话框资源,加了类CDlg与之对应,在MainFrame.cpp里:
    void CMainFrame::OnAppAbout() 
    {
        CDlg aboutDlg;
        aboutDlg.DoModal();
     }
     注:OnAppAbout是框架菜单的“打开关于对话框”项。     运行后可以打开我的对话框来代替原来的关于对话框”。但是如果我在CMyApp中的
void CMyApp::OnAppAbout()下将CAppAbout换为CDlg为什么不会显示我的对话框? 
而还原为CAppAbout就能显示“关于对话框”?
感谢各位解答,先谢,分不够再加。

解决方案 »

  1.   

    我刚才做了,可以显示啊~加一个对话框资源,并创建类cdlg;
    在cdlg.h中加#include<resource.h>
    然后在CMyApp中:
    void CRrApp::OnAppAbout()
    {
    // CAboutDlg aboutDlg;
    // aboutDlg.DoModal();
    cdlg dlg;
    dlg.DoModal();
    }
    对话框可以显示.
      

  2.   

    补充一下,在CMyApp中,加入#include "cdlg.h"
    哈~
      

  3.   

    大侠,你知道m_pMainWnd怎么来的?是个什么东东?
    BOOL CEx02aApp::InitInstance()
    {
        .....
        m_pMainWnd->ShowWindow(SW_SHOW);
        m_pMainWnd->UpdateWindow();    return TRUE;
    }
      

  4.   

    这取决于MFC消息的传递路径:
    mfc的消息->CDocument->CView->CMainFrame->CWinapp
    如果有类捕获了该消息,那么此消息将不会传入下一个类你这里CMainFrame已经捕获了ID_ABOUT因此CWinapp就不能捕获该消息了.弹出了About对话框是因为CMainFrame::OnAppAbout()函数在起作用