CMyApp::InitInstance() {
CMyDialog1 dlg1; m_pMainWnd = &dlg1; dlg1.DoModal();
CMyDialog2 dlg2; dlg2.DoModal(); // 返回 -1 失敗,消息隊列出現 WM_QUIT
}
m_pMainWnd 指向有效窗口對象。首個 DoModal() 結束時窗口銷毀,MFC 認為主窗口關閉,發送 WM_QUIT 終止應用程序。m_pMainWnd 已被使用,不應重複賦值。m_pMainWnd
CMyDialog1 dlg1;
m_pMainWnd = &dlg1;
int nResponse = dlg1.DoModal();
if (nResponse == IDOK) {
CMyDialog2 dlg2;
dlg2.DoModal(); // 此時 m_pMainWnd 仍指向已銷毀的 dlg1,但不再檢查
}
return FALSE; // 結束應用