Synchrones Paint fuer Durchhaltebalken

29/02/2008 - 00:32 von Thomas Thiele | Report spam
Hallo,

normalerweise funktioniert ein Neuzeichnen eines Fensters durch
Invalidate() und dann wird irgendwann asynchron ein PAINT-Event an die
Anwendung geschickt, welche dann neu malt.

Kann man ohne Threads programmieren zu müssen innerhalb einer lang
dauernden Arbeitsfunktion einen synchrones Paint aufrufen?
Vermutlich nicht, oder?

In etwa so:

for (unsigned int i = 0; i < GROSSE_ZAHL; i++){
if (i % 1000){
UpdateBarAndPaintIt(i); //der Balken wird direkt gezeichnet
//nicht bloß Invalidate() aufgerufen
}
GanzLangeDauerndeFunktion(i);
}

Gruß Thomas
 

Lesen sie die antworten

#1 René König
29/02/2008 - 02:14 | Warnen spam
Hallo!

Ich denke, Du suchst die Funktion UpdateWindow(). Damit das
funktionieren kann, musst Du *zuvor* wie gehabt InvalidateRect() aufrufen.

Eine wirkliche Lösung ist das IMO aber nicht, da das User Interface
wàhrend des Vorganges trotzdem nicht reagiert.

Gruß,
René

Ähnliche fragen