CDC ohne Flackern mit CMemDC? Aber wie?
-
Ich habe eine CDC mit GetDC() geholt, auf die ich mit den verschiedenen Zeichenfunktionen male. Nun aktualisiere ich die Grafik im Sekundentakt und dann flackert das ganz ordentlich. Irgendwo hatte ich mal gelesen, dass man da CMemDC benutzen muss, um das Flackern zu verhindern.
Nun weiß ich aber nicht, wie ich das CMemDC benutze. Einfach von GetDC in eine CMemDC casten geht ja auch nicht und mit CreateCompatibleDC() hab ichs auch nicht hinbekommen. Wahrscheinlich muss man ja auch noch zusätzliche Dinge, wie OnPaint oder so überschreiben...
Kann mir jemand sagen, wie ich meine Anwendung flackerfrei mache bzw. das CMemDC richtig benutze? Habe dazu leider nix so richtig gefunden.
-
Du must zusätzlich zum CDC einen MemDC erzeugen. In den MemDC alles reinmalen, genauso wie du es sonst in den CDC malen würdest.
Ganz am Schluss einen BitBlt-Aufruf machen. Der kopiert den MemDc in den CDC.
Dann flackert nix mehr.Guck mal bei www.codeproject.com.
Das steht alles.
-
Aus Codeproject:
Flicker FreeGrüssli