В теме все сказано: у меня проблема, когда MessageBox возвращается немедленно (без отображения чего-либо), если он вызывается после CDialog :: DoModal ().Я пробовал все виды MessageBox: MessageBoxA, MessageBoxW, CWnd :: MessageBox (используя диалог), AfxMessageBox.Ни один не работает, и они сразу возвращают 1.Я попытался сохранить HWND диалога и использовать его в качестве первого параметра.Я попытался передать GetDesktopWindow () в качестве параметра HWND.Я пробовал такие вещи, как MB_YESNO | MB_ICONSTOP.Ничего не помогло.
Я подозреваю, что упускаю что-то действительно очевидное, но из-за жизни я не могу понять, что именно, и я искал решение более 2 часов.Я попытался создать новый проект с помощью мастера MFC, выбрав шаблон диалога и просто добавив вызов MessageBoxA сразу после вызова DoModal ():
CdelmeDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
MessageBoxA(0, "test", "test", 0);
Диалог отображается просто отлично, но когда я нажимаюОк или Отмена, окно сообщения просто не отображается.
Если я помещаю вызов MessageBoxA () выше вызова DoModal (), он отлично работает.
Редактировать: есть ли способпредотвратить такое поведение?