У меня проблема с MFC.Всякий раз, когда я вызываю DestroyWindow в моем немодальном диалоговом окне, я вылетаю с необработанным исключением в AfxThrowInvalidArgException
.
При проверке стека вызовов он падает как 1055
в wincore.cpp
:
ENSURE(pMap != NULL);
Если это уместно, вот как я создаю немодальное окно:
Dialogs::WelcomeDialog = new CRCChatWelcomeDlg( );
m_pMainWnd = Dialogs::WelcomeDialog;
Dialogs::WelcomeDialog->Create( DialogRCChatWelcome, CWnd::GetDesktopWindow( ) );
if ( pShellManager != nullptr )
delete pShellManager;
MSG Message;
while ( GetMessage( &Message, Dialogs::WelcomeDialog->m_hWnd, 0, 0 ) ) {
TranslateMessage( &Message );
DispatchMessage( &Message );
}
Dialogs::MainMenuDialog = new CRCChatMainMenuDlg( );
m_pMainWnd = Dialogs::MainMenuDialog;
Dialogs::MainMenuDialog->Create( DialogRCChatMainMenu );
while ( GetMessage( &Message, Dialogs::MainMenuDialog->m_hWnd, 0, 0 ) ) {
TranslateMessage( &Message );
DispatchMessage( &Message );
}
И я уничтожаю его так:
Dialogs::WelcomeDialog->DestroyWindow( );