Message bevor DestroyWindow() das Fenster schliest?



  • Hallo,
    ich habe eine kleine Frage, gibt es eine Message die vor WM_DESTROY aufgerufen wird, also bevor das Window geschlossen wird? Ich möchte nehmlich das wenn ich DestroyWindow() aufrufe, dieses, und auch andere Fenster geschlossen werden, aber das er nicht das Programm beendet. Und das ganze nach einer MessageBox Ja/Nein.

    Vielen Dank
    Johannes



  • WM_CLOSE? Wann das Programm beendet wird, bestimmst doch du und nicht das Fenster!?



  • Danke für die Antwort, aber ich will ja garnicht das Programm beenden wie ich ja oben beschrieben hatte, und WM_CLOSE wird nicht bei DestroyWindow() gesendet, richtig? Und dan kann ich ja auch wieder nicht machen was ich wollte...
    Gibt's keine möglichkeit DestroyWindow() abzufangen befor er das Fenster schliest?

    Vielen Dank
    Johannes



  • WM_CLOSE wird gesendet, wenn der Benutzer das Fenster schließen möchte. Wenn du die Nachricht bearbeitest, ruf einfach DestroyWindow() für alle Fenster auf, die du schließen möchtest.



  • Das ist ja nicht das was ich machen möchte!!! Ich möchte wegen anderen Gründen irgendwo in meinem Programm DestroyWindow() aufrufen und dann die anderen Fenster auch mit löschen ohne immer zu schreiben DestroyWindow(hWnd);DestroyWindow(hWnd1);DestroyWindow(hWnd2);...



  • Johannes251298 schrieb:

    ohne immer zu schreiben DestroyWindow(hWnd);DestroyWindow(hWnd1);DestroyWindow(hWnd2);...

    Dafür kann man eine wiederverwendbare Funktion oder Prozedur schreiben 😉



  • Wenn die Fenster nicht alle dieselbe WndProc verwenden, kannst du einfach WM_DESTROY , welche direkt auf DestroyWindow folgend an das gewählte Fenster gesendet wird. Allgemein sollte man WM_DESTROY abfangen, um PostQuitMessage(0) aufzurufen.



  • _anfänger schrieb:

    Johannes251298 schrieb:

    ohne immer zu schreiben DestroyWindow(hWnd);DestroyWindow(hWnd1);DestroyWindow(hWnd2);...

    Dafür kann man eine wiederverwendbare Funktion oder Prozedur schreiben 😉

    Vielen Dank, das habe ich jetzt auch gemacht, aber es hätte ja auch sein können das es anders geht.


  • Mod

    Johannes251298 schrieb:

    Danke für die Antwort, aber ich will ja garnicht das Programm beenden wie ich ja oben beschrieben hatte, und WM_CLOSE wird nicht bei DestroyWindow() gesendet, richtig? Und dan kann ich ja auch wieder nicht machen was ich wollte...
    Gibt's keine möglichkeit DestroyWindow() abzufangen befor er das Fenster schliest?

    Nein! Ein Fenster kann sich nicht gegen seine Zerstörung wehren.
    Wenn WM_DESTROY ankommt ist schon alles zu spät 😉
    Das Schließen der Anwednung hat mit WM_DESTROY mal nichts zu tun und auch nichts mit WM_CLOSE... das musst Du schon selber veranlassen durch PostQuitMessage.


Anmelden zum Antworten