modalen Dialog schließen
-
Hi zusammen,
eine zugegebenermaßen wahrscheinlich sehr simple Frage.
Wie schließe ich einen modalen Dialog aus der dazugehörigen Dialogklasse?
Im Parent Window wird der Dialog so erzeugt:
CDialogEnterValue EnterValueBox; EnterValueBox.DoModal();
Jetzt möchte ich mit einem Button der CDialogEnterValue Klasse das modale Fenster wieder schließen. Mit OnCancel() funktioniert es zwar, aber ich verstehe nicht, wieso es weder mit CloseWindow() noch mit DestroyWindow() funktioniert.
CloseWindow() minimiert den Dialog nur und DestroyWindow() führt zu einem Absturz.
Und wo ist eigentlich der Unterschied zwischen OnOK() und OnCancel()?
-
Weil DoModal eine eigene Nachrichtenschleife hat und diese nicht beendet wird.
Einen modalen Dialog kann man nur korrekt durch Aufrufen von EndDialog schließen.
Implizit passiert diesnatürlich auch wenn der Dialog geschlossen wird. (WM_CLOSE)
-
merci
-
Normalerweise macht das mit ergänzenden Erweiterungen in der Abfrage der Nachrichten der Hauptanwendung. Wäre aber WinApi!