ich hab mit vc++ 6 eine mfc-Anwendung erstellt und lasse, wenn ich auf einen Button klicke ein paar Rechnungen mit Daten aus Dateien durchführen. Der Prozess dauert ein bisschen länger, deshalb hab ich eine Progress-Bar mit eingefügt, die den Fortschritt auch schön anzeigt (mit m_progress1.SetPos(anz); UpdateData(FALSE) soweit so gut. Alles wird schön angezeigt, solange man nichts macht. Schaltet sich aber jetzt der Bildschirmschoner ein oder man versucht, das Fenster zu bewegen, oder hat es kurzzeitig im Hintergrund, wird nichts mehr aktualisiert und man sieht nur noch ein weißes leeres Fenster. Erst, wenn die Berechnungen alle fertig sind, baut sich das Ganze wieder auf.
Ich hab von mfc so gut wie keine Ahnung, da ich bisher für Ein- und Ausgabe nur cin und cout benutzt hab und die Dokumentation von vc++ hat mich auch nicht sonderlich weiter gebracht.
Wie krieg ich das also hin, dass er den Bildschirm ab und an mal komplett aktualisiert?
so weit so gut, ich hab jetzt die kompletten Berechnungen in einen eigenen Thread gepackt aber ein Problem gibt’s da noch: Wie aktualisiere ich jetz die progress-bar?
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
so weit so gut, ich hab jetzt die kompletten Berechnungen in
einen eigenen Thread gepackt aber ein Problem gibt’s da noch:
Wie aktualisiere ich jetz die progress-bar?
Übergib am besten dem Thread entweder die Klasse, die die Progressbar enthält oder einen Pointer auf die Progressbar(das Control) selbst. Dazu ist ja der void*/LPVOID Parameter beim Thread gedacht