Funktion erst weitermachen, wenn Fenster geschlosen ist
-
Hi,
ich habe ein problem. In meiner Anwendung gibt es irgendwo eine Funktion, die (wenn sie aufgerufen wird), ein neues Fenster öffnet. Nun meine Frage: Wie kann ich es erreichen, dass die Funktion erst dann "zuende"-geführt wird, wenn das Fenster geschlossen ist???
Ich hätte da schon ein paar Ideen, wie ich das machen könnte, wobei das nur schelchter Codestil ist. Es muss ja auch irgendwie anders gehen.
Danke, Chrissi
PS: Ich ntuze eine spezielle Technik, in der das Hauptfenster und das andere Fenster (was in meiner Funktion erstellt wurde) gleichzeitig aktiv ist.
-
Ich ntuze eine spezielle Technik, in der das Hauptfenster und das andere Fenster (was in meiner Funktion erstellt wurde) gleichzeitig aktiv ist.
Was du machen kannst, ist einen modalen Dialog erstellen (API: DialogBox & Co). Modale Dialoge blockieren das Hauptprogramm (also den aufrufenden Thread) und das ist ja von dir gewünscht, oder? Insofern verstehe ich nicht wie das mit deiner speziellen Technik in Einklang zu bringen ist...
-
So speziell ist die Technik gar nicht. Nemen wir mal an, sie würde gar nicht exestieren. Was müsste ich dann tun???
Danke,
Chrissi
PS: Ich nutze keine Dialoge, sondern normale Fenster (per CreateWindow erstellt...)
-
Nur, dass wir uns richtig verstehen: Du hast eine Funktion, die ein neues Fenster erstellen soll. Es ist für dich erforderlich, dass die Funktion erst dann beendet werden soll, wenn auch das Fenster beendet wurde. Soweit so richtig?
Sowas kann man wunderbar mit modalen Dialogboxen implementieren. Das kann man auch mit normalen Fenstern bewerkstelligen, aber eher auf umständlichere Weise als die Methode mit Dialogboxen (soweit ich das sehen kann).
Willst du nicht doch lieber eine Dialogressource anlegen und es mit DialogBox ins Leben rufen?

-
Nee, eigentlich nicht. Naja, ist ja auch egal. Ich mache das dann eben auch die unschöne Weise (mit BOOL-Zeiger, der der WndProc übergeben per WM_USER wird. Wenn WM_DESTORY gesendet wird, wird der BOOl-Zeiger auf TRUE gesetzt und die Anwendung geht weiterusw.)...
Danke nochmals,
Schüssi,
Chrissi
-
Du musst wissen was du tust...

Die Lösung ist übrigens ok. An sowas dachte ich auch am Anfang.