菜单是框架Frame的一部分,消息传递顺序是1.View 2.Document 3.Document Template 4.Frame 5.CWinAPP。
MFC的打开响应在CWinAPP的消息映射中,在类向导中不显示:
// Standard file based document commands
ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)
新建是:CWinAPP 调用CDocManager::OnFileNew() 调用当前显示的CDocument::OpenDocumentFile(NULL)。
打开是:CWinAPP 调用 CDocManager::OnFileOpen() 在其中显示打开对话窗,然后调用 CWinAPP::OpenDocumentFile 调用 CDocManager::OpenDocumentFile 调用 CDocument::OpenDocumentFile(szPath)。
由于CWinAPP ::OnFileOpen不是虚函数,CDocManager又不在工程中。
建议修改CWinAPP 的消息映射,直接显示对话框,再调用CWinAPP::OpenDocumentFile。