我正在開發MFC應用程序並將其導出到dll中。該應用程序只有一個窗口,我希望該窗口無模式。裏面的InitInstance(),如果我希望它是模式的,我只需要做到這一點:具有主窗口作爲非模態對話框的MFC應用程序
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CUIWelcomeDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}
return false;
它工作得很好,作爲一個模式。這是無模式的代碼:
AFX_MANAGE_STATE(AfxGetStaticModuleState());
CUIWelcomeDlg * dlg;
dlg=new CUIWelcomeDlg();
m_pMainWnd=dlg;
if(dlg!=NULL) {
dlg->Create(IDD_UIWELCOME_DIALOG,NULL);
dlg->ShowWindow(SW_SHOW);
}
return true;
我試圖調試它。直到它迴歸真實,這是好的;之後,對話窗口凍結並且沒有響應。有誰知道如何解決這一問題?
出於好奇,僅:基於模式的基於對話框的應用程序有什麼意義?什麼情況下有必要? – MikMik