wxFileDialog von anderem Thread aus schließen



  • Hi!

    Ich habe ein von wxFrame abgeleitetes Fenster. Hier gibt es die Möglichkeit, eine Datei zu öffnen/speichern. Dafür verwende ich wxFileDialog.

    Soweit funktioniert auch alles.

    Nun habe ich aber einen weiteren Thread laufen, der dazu führen kann, dass dieser modale wxFileDialog und auch das Hauptfenster geschlossen werden muss.

    Einen Zeiger aufs Hauptfenster bekomme ich schonmal. (wxTheApp->GetTopWindow()) Dieses kann ich dann auch mit wxEVT_CLOSE_WINDOW schließen.

    Wenn der Dialog aber offen ist, bleibt dieser einfach offen. (Er hat zwar das Hauptfenster als Parent, aber die Dialoge werden ja nicht als Kinder registriert.)

    (Selbst wenn ich einen Zeiger auf den Dialog habe, kann ich zwar exEVT_CLOSE_WINDOW schicken und es schließt sich, allerdings gibt es einen Speicherzugriffsfehler, da wohl der Dialog gleichzeitig zerstört wird. Warte ich zwischen den Events allerdings ein wenig (sleep(1);), klappt es.)

    Aber: Gibt es eine allgemeingültige Möglichkeit, alle Fenster sauber von einem anderen Thread aus schließen zu lassen?


Anmelden zum Antworten