MFC DestroyWindow приводит к сбою - PullRequest
0 голосов
/ 26 ноября 2018

У меня проблема с 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( );
...