Flackerndes CStatic
-
versuche es besser so
SetTimer ((UINT) 1, 100, NULL );
if( nIDEvent == ( UINT ) 1 )
{GetDlgItem(IDC_zum Beispiel)->SetWindowText("neuer wert");
}
-
OK das Flackern wird bestimmt besser (weniger), wenn man auf das Static nur noch jede 1/10 Sekunde zugreift !!!
Aber gibt es da nicht irgend eine andere Möglichkeit ???
MfG
-
nein das Flackern ist ganz weg und die
Prozessorlast sinkt dabei auch noch.Eine andere möglichkeit ist das du dir eine
zwischenvariable schreibst und die mit den
momentanwert vergleicht.
Diese soll nur bei änderung äktualiesiert werden.Die frage ist ja warum flakert das und das sollte
dir ja eigendlich klarr seinVossy
-
OK Vossy...
Hast recht, das flackern ist weg
Ich werde das ganze nochmal umformulieren:
Kann man dem CStatic nicht beibringen, daß es "von Haus aus" nicht flackern soll ??? denn jetzt zeichnet man ja nur alle 1/10 Sekunden !!! Nicht das es schlimm wäre nur alle 1/10 Sekunden darauf zuzugreifen aber...
MfG
-
...aber das ist schon gut so! wenn du ständig den text änderst, sagen wir in ner endlosschleife, immer sofort hintereinander, muss es einfach flackern bzw. es sieht einfach so aus
-
Ich bin ja auch mit OnTimer-Lösung zufrieden !!! Danke Vossy.
Hätte ja sein können, daß man das auch noch anders lösen könnte.MfG Fragender
-
Bitte, hab ich sehr gerne für dich gemacht. Bis zum nächsten mal.
-
he was soll das Vossy bin immer noch ich
Vossy Registriert und nicht
nicht registriert
Vossy
-
Sorry, tut mir leid, aber ich hab doch ne gute Antwort gegeben. Oder nicht?
-
Könntest dir ne eigene Klasse von CWnd oder CStatic ableiten und dort dein Static selbermalen mit Doublebuffering. Oder malst in den Dialog rein.
Ich glaub bei Codeguru hatte jemand was beschrieben wie man jedes Control Flicker-Free kriegt.[ Dieser Beitrag wurde am 16.11.2002 um 22:59 Uhr von Nemesyzz editiert. ]
-
@Nemesyzz
Also geht es doch anders
Danke für den Tip !!!
Ich habe folgendes gefunden:
http://www.codeproject.com/gdi/flickerfree.asp
Leider hat sich die Klasse "komplett" geändert
Wenn ich so vorgehe wie auf http://www.codeproject.com/gdi/flickerfree.asp beschrieben, dann scheitere ich daran, daß es doch in meinem Dialog gar keine OnDraw() gibt !!!
Wie muß man das für den Dialog anpassen, damit man die Klasse benutzen kann ???
Weiß da jemand Rat ???
MfG
-
Benutze die Klasse einfach bei OnPaint im Dialog.
CMemDC mDC(&dc);