Я не уверен, но, возможно, AfxMessageBox
не предоставляет свой собственный генератор сообщений, как CDialog::DoModal()
.Я бы предположил, что AfxMessageBox
просто вызывает функцию Win32 MessageBox()
, которая потребует помпы сообщений для отправки сообщений рисования / щелчка и т. Д.
РЕДАКТИРОВАТЬ: Программы Windows работают путем передачи сообщенийвокруг.У всех программ Windows есть сообщение «насос», которое обрабатывает любые входящие сообщения для таких вещей, как рисование экрана, реагирование на щелчки мыши и т. Д. Изначально вам приходилось кодировать насос сообщений самостоятельно.
MFC пришел и предоставилнасос сообщений для вас.Один в CWinApp::Run()
для обычных приложений SDI / MDI и один в CDialog::DoModal()
для диалоговых приложений (и модальных диалоговых окон в целом).
Код, который вы опубликовали, представляет собой диалоговое приложение MFC.«Приложение» - это диалог.После того, как вы вернулись из этого диалогового окна, насос сообщений отсутствует, и приложение в значительной степени устарело.Вы должны делать очень мало после этого, возможно, некоторую очистку.Конечно, не отображать дополнительную информацию.
Если вы хотите отобразить дополнительную информацию о закрытии, переопределите OnClose()
в диалоговом окне приложения и вызовите AfxMessageBox()
там.