MessageBox anzeigen und trotzdem Programm weiterlaufen lassen



  • Hallo,
    in meinem Programm wird bei einer WM_CLOSE Nachricht der Speicher eines Objektarrays freigegeben. Das dauert jedoch einen Moment, deßhalb wollt ich eine Nachricht für den Nutzer anzeigen lassen, dass er sich einen Moment gedulden soll.
    Das Problem dabei ist, dass bei einer MessageBox das gesamte Programm angehalten wird. Gibt es da eine Möglichkeit das zu umgehen (abgesehen von der Textausgabe im Fenster bzw. in einem Dialog) damit das Programm weiter ausgeführt wird? Oder ist dieses Problem bei einer MessageBox nicht zu vermeiden?

    (ich nutze kein MFC!)

    mfg Flori



  • Thread



  • Die MassageBox wird von Windows selbst verwaltet mit den vorgegeben möglichen Buttons. Ob die MessageBox ein Handle hat, an das man eine Nachricht schicken könnte, weiss ich nicht und habe dazu auch nichts gefunden. Mir erscheint für diesen Zweck eine eigene DialogBox mit eigener CALLBACK-Funktion in einem anderen Thread sinnvoll und schnell realisiert. Vielleicht wissen andere mehr?



  • http://www.functionx.com/win32/controls/ProgressBars.htm

    Schau das mal an. Nimmst eine Progressbar und in deiner Schleife wo du die Daten zerstörst, musst halt immer wieder die MsgPump mal laufen lassen. Dann friert die App nicht ein.
    Oder, wie schon gesagt, benutze Threads.
    Andere Möglichkeit haste fast nicht.



  • Hab mir nun eine kleine Funktion geschrieben die ein Fenster mit Text und Icon erzeugt. Eine Progressbar hatte ich sowieso schon angedacht und die lässt sich da ja auch ohne weiteres mit einbinden.
    Das komische ist ja, was auch der Anlass für die anzuzeigende Meldung ist, das die Initialisierung des Objektarrays in nur 2 Sekunden statfindet aber 10 Sekunden vergehen ehe delete alle Destruktoren durchgearbeitet hat. Mal sehen ob sich da was optimieren lässt.

    Trotzdem danke für eure Tipps 👍 .


Anmelden zum Antworten