Я разрабатываю приложение MFC и экспортирую его в dll. Приложение имеет только одно окно, и я хочу, чтобы это окно было немодальным. Внутри InitInstance (), если я хочу, чтобы он был модальным, мне нужно сделать только это:
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;
Пытался отладить. Это нормально, пока не достигнет return true; После этого диалоговое окно зависает и не отвечает. Кто-нибудь знает, как это исправить?