Fortschrittsanzeige beim laden von Dokumenten

Liebe Experten,

ich habe ein kleines Programm geschrieben (Visual C++ 6.0), das die Document/View Architektur verwendet. Beim laden großer Dokumente störte mich, daß der Ladevorgang nicht angezeigt wurde, also bin ich hingegangen, und habe einen Dialog entworfen mit einer Fortschrittsanzeige, die auch regelmäßig aktualisiert wird. Das klappt schon.

Jetzt habe ich versucht, diesem Fortschritts-Dialog ein Abbruch-Button hinzuzufügen, muß aber feststellen, daß Nachrichten von diesen Button gar nicht verarbeitet werden, da das Laden des Dokumentes (Methode serialize) immer noch nicht abgeschlossen ist und daher die Message-Loop meiner Anwendung nicht aufgerufen wird.

Was kann ich tun, damit doch auf den Abbruch reagiert werden kann?

Vielen Dank im Vorraus,

Daniel.

Jetzt habe ich versucht, diesem Fortschritts-Dialog ein
Abbruch-Button hinzuzufügen, muß aber feststellen, daß
Nachrichten von diesen Button gar nicht verarbeitet werden, da
das Laden des Dokumentes (Methode serialize) immer noch nicht
abgeschlossen ist und daher die Message-Loop meiner Anwendung
nicht aufgerufen wird.

Was kann ich tun, damit doch auf den Abbruch reagiert werden
kann?

Hallo,

du brauchst einen zusätzlichen Thread, der nebenan läuft und nur den Abbruch-button beobachtet!

Hier eine Anleitung:

http://www.flipcode.com/tutorials/tut_mthreading.shtml

Hoffe, das hilft weiter.

Gruss, Omar Abo-Namous

Ich würde eher das Laden des Dokuments in den Thread setzen, da somit auch die Fortschritts-Anzeige neu gezeichnet werden kann. Aber denke das habt ihr schon auch so kapiert :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo ihr beiden,

danke für die Hilfe. Ich war einige Zeit außer Gefecht und konnte nicht weiter an dem Projekt arbeiten. Deshalb komme ich jetzt erst dazu, zu antworten.

Das mit dem Thread sieht vielversprechend aus. Das Laden der Daten würde ich nur ungerne in einer anderen Thread-fähigen Klasse packen, da ich sehr viele Dokumentenarten (alle als eigene Klassen von einer abstrakten Dokumentenklasse abgeleitet) habe und dann für jede Dokumentenart eine eigene Thread-Klasse schreiben müßte.

Vielen Dank,

Daniel.