Warum kein Destroy-Windows beim schließen einer Anwendung



  • Hey,

    kann es sein, dass Windows beim schließen einer Anwendung kein DestroyWindow Message sendet?
    Folgendes Problem:

    SDI-Anwendung mit nicht-modalem Dialog. In der Dialog-Klasse habe ich eine Funktion die bei DestroyWindow aufgerufen wird und da aufräumt (beim Destruktor geht es nicht, da ich die Auswahl aus Steuerelementen benötige, die ja beim Destructor schon futsch sind).
    Wenn ich jetzt meine Anwendung schließe, wird keine DestroyWindow-Message gesendet. Warum nicht?

    An welcher Stelle in meiner View müsste ich dem Dialog die DestroyMessage senden (im Destructor ist es ja schon zu spät)?



  • Das musst du schon schön selbst machen, wenn du den Dialog mit Create erstellt hast. Mach das in der ExitInstance von deiner App oder in OnClose von deiner App.

    m_aDeinDialog.DestroyWindow();
    
    //oder wenn du den mit new gemacht hast
    if(m_pDeinDialog)
    {
      m_pDeinDialog->DestroyWindow();
      delete m_pDeinDialog;
    }
    m_pDeinDialog = NULL;
    

    Hoffe das hilft dir weiter...



  • wenn du einzelne dialogfelder aufrufst, dann kannst du die message WM_SHOWWINDOW abfangen. in der msdn steht mehr dazu. da kannst du dann auch über die flags die dir die funktion übergibt herausfinden was genau sich da tut


Anmelden zum Antworten