ListCtrl richtig redrawn
-
Ich habe eine Liste, die ich mit einen Timer alle 200 ms aktualisiere. Irgendwo in OnTimer() mache ich also ein mList.RedrawWindow(). Das häufig geflackert. Ich habe das Flag RDW_NOERASE mal probiert und bilde mir ein, dass es nun etwas besser ist. Allerdings flackert es immer noch ein bisschen. Wie gehts noch besser?
Beim restore vom Fenster habe ich das Problem, dass nicht sauber neugezeichnet wird. Mal fehlen die Scrollbars, mal der Tabellenheader. Bisher habe ich in OnSysCommand() SC_RESTORE abgefangen und dann wieder mList.RedrawWindow() aufgerufen. (Man könnte bei der Geschwindigkeit des Timers sich nat. auf das redraw vom Timer verlassen. Will ich aber nicht, da ich eine echte Lösung möchte.
). Was mache ich falsch?
-
Hab es nicht getested aber schau Dir mal das folgende an:
Stopping flicker during updates: http://www.codeguru.com/Cpp/controls/listview/miscellanious/article.php/c895/
-
Danke. Hat aber leider nicht funktioniert.
-
Ok, beim aktualisieren der Liste beibt mir wohl nix anders übrig, als den Timer etwas runter zu nehmen.
Aber das ListCtrl muss sich doch gescheit restoren lassen. Ich habe mehrere Stunden rumprobiert, aber es hat letzten Endes nichts geholfen. Eigentlich müsste das Problem schon jmd. mal gehabt haben, denn Listen braucht man doch häufig, oder?