Einzelnen Beitrag anzeigen

Benutzerbild von OrallY
OrallY

Registriert seit: 29. Apr 2003
268 Beiträge
 
#1

Auf Desktop zeichnen und DoubleBuffered

  Alt 20. Feb 2004, 18:25
Mein Programm zeichnet direkt auf das Desktop DC. Dabei handelt es sich um ein animiertes Menü und damit es nicht flackert, zeichne ich alles zuerst Schritt für Schritt auf ein temporäres DC und bringe es dann auf das Desktop DC. Doch muss ich die Zeichenfläche vor jedem neuen "Rendern" löschen, da sich sonst schlieren Bilden. Allerdings kann ich die Fläche ja nicht einfach schwarz machen, wie man es z.B. bei der OpenGl Programierung machen würde. Auf dem Desktop ist ja auch was, was nicht unter den Zeichenaufgabenbereich meines Programms fällt. Zur Zeit wird der Screen gelöscht, in dem er mit einem Screenshot übermalt wird, der vorm Aufrauf des Menüs gemacht wird.
Logisch, dass es nicht so sauber ist. Läuft z.B. ein Video im Hintergrund oder irgend was anderes bewegt sich ist nur ein Standbild zu sehen.

Wie kann ich das Problem lösen? Wenn ich jedes mal InvalidateRect aufrufe, flackert der ganze Bildschirm.
Ich müsste Windows irgendwie mitteilen, die Teile neu zu zeichen, die nicht mehr von meinem Menü verdeckt sind.

Kann mir jemand helfen?
.oO'rallY
Linux is like a tipi: no gates, no windows and a gnu-eating apache inside...
  Mit Zitat antworten Zitat