Fortschrittsanzeige CProgressbar
-
Hi Leutz,
ich habe da wieder ein kleines Problem. Und zwar möchte ich den Nutzer nicht im Unklaren darüber lassen, wie lange eine bestimmte Berechnung o.ä. noch dauert. Dazu möchte ich die CProgressbar verwenden. Das klappt soweit auch ganz gut, sofern ich innerhalb der abzuarbeitenden Funktion auch gleichzeitig die CProgressbar aktualisiere.
Wenn ich nun aber über eine Menüfunktion innerhalb meiner CView-Klasse (SDI-Anwendung) eine andere Funktion einer eigenen Klasse (z.B. zum Datei-Einlesen, Klassifizieren etc) ausführen lasse, dann kann ich ja schlecht innerhalb dieser Funktion meine Progressbar aktualisieren.
Ich hatte mal geschaut, ob ich nicht über globale Ereignismeldungen WM_XYZ weiterkomme, finde da aber nix passendes. Oder bin ich völlig auf dem falschen Dampfer? Wie kann ich dem Nutzer den Fortschritt bzw. das erwartete Ende anzeigen, wenn ich eine Funktion aufrufe, in der ich die Anzeige nicht aktualisieren kann bzw. will???
-
Was du brauchst ist ein worker thread. Schau mal in der MSDN nach afxBeginThread da findest du eigentlich alles.
oder du schaust mal hier
:http://www.c-plusplus.net/forum/viewtopic-var-t-is-147156-and-start-is-10.html
-
Threads:
http://www.codeproject.com/threads/threads_and_mfc.asp
http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel17.htm
-
Vielen Dank für die Links. Ich habe es eine Weile ausprobiert und es scheint wirklich zu funktionieren.
