/***********************************************************************/
引子:
今天做一个登录对话框时发现在XXApp::Initstance()中忽然出现了:
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
这两句,而这前既没有对m_pMainWnd的new操作,也在XXApp.h中看不到这个m_pMainWnd的声明,于是想一探究竟。
/***********************************************************************/
原来:
m_pMainWnd在CWinApp中声明,而在上面两句的前面还有一句:
if (!ProcessShellCommand(cmdInfo))return FALSE;
正在是这个函数中通过调用:
AfxGetApp()->OnCmdMsg(ID_FILE_NEW, 0, NULL, NULL );
进而
void CWinApp::OnFileNew();
进而在
CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName,
BOOL bMakeVisible)中调用了
pFrame = CreateNewFrame(pDocument, NULL);
而此处的pFrame就是m_pMainWnd;
/***************************** End **************************************/
阅读(1369) | 评论(0) | 转发(0) |