Dialog updaten?
-
Hallo,
ich habe mal eine Frage.
Ich habe ein Dialog auf dem ein Textfelt ist. Das wird duch eine Funktion gefüllt. Diese Funktion durchläuft eine Schleife und Update immer das Text Feld.
Man sieht am Scrollbalken das er was tut, aber im Textfeld sieht man erst etwas wenn die Funktion beendet ist.
Ich möchte aber das Ergebnis gleich sehen (Statusanzeige).
Gibt es eine Möglichkeit?
Nebenbei: Das ganze wird in einer extra Klasse ausgeführt und der pointer vom Dialog ist vorhanden. Aufruf von pOwner->OnPaint() funktioniert nicht wegen protected Funktion (sagt es zumindest).
Danke für die Hilfe.
Pedro
-
UpdateData ist das was du suchst.
Und unter www.mut.de -> leseecke gibts Visual C++ in 21 Tagen zur online einsicht,
empfehl dir mal dich damit zu beschäftigen...Devil
-
oder mit
GetDlgItem(IDC_...)->SetWindowText("BLABLA");
-
UpdateData benutze ich.
Er zeigt es aber erst an, wenn die Funktion beendet ist.Pedro
-
mach ZWISCHENDURCH (in de schleife) mal ein UpdateData(FALSE);
-
Das mache ich doch...
In jedem Durchlauf
m_pOwner->UpdateData(FALSE)
Er scheint es ja auch zu machen, den die Scrollbalken verändern sich, aber im Feld ist es erst zu sehen, wenn die Funktion beendet ist.
Einer einen Vorschlag?
Pedro
-
Klaro
Textfeld->UpdateWindow();
-
Danke, jetzt funktioniert es prima!
Pedro
-
Zur Erklärung:
Du gibst mit der Schleife deinem Programm nicht die Change die MessageLoop anzuarbeiten.
Es kann immer nur ein Code ausgeführt werden da du keine Threads verwendest.
Für die Zukunft: Trenne GUI von Funktionen.
-
Danke für die Info.
Kannst du vielleicht noch ein Beispiel zeigen, wie du es meinst GUI und Funktion zu Trennen. Ich dachte, ich habe doch unterschiedliche Klassen dafür.
Danke nochmals!
Pedro