GDI+ Double Buffering?
-
Hallo,
ich hoffe meine Frage ist jetzt in dem richtigen Themengebiet...
ich habe folgendes Problem: beim Zeichnen auf den Bildschirm mit GDI kommt es gelegentlich zu einem Flackern, was ja normalerweise mit Double Buffering schnell gelöst ist.
Ich bin dabei auf folgenden Beitrag aus diesem Forum gestoßen:http://www.c-plusplus.net/forum/14713.
Ich habe den Code darauf hin 1:1 in meinen Quellcode kopiert, leider wird das Flackern dadurch nur noch vieeeel schlimmer.
Sowohl das der Zeichnung, als auch das des Hintergrundes.Hier ist jetzt mal der Vollständigkeit habler ein Ausschnitt des Codes aus der Messageloop
:
case WM_PAINT: { PAINTSTRUCT ps; HDC hDC = BeginPaint(p_hWnd, &ps); HDC hDC2 = CreateCompatibleDC(hDC); HBITMAP hBM = CreateCompatibleBitmap(hDC, 800, 600); SelectObject(hDC2, hBM); Ellipse(hDC2, 100, 100, 200, 200); BitBlt(hDC, 0, 0, 800, 600, hDC2, 0, 0, SRCCOPY); DeleteObject(hBM); DeleteDC(hDC2); }
EDIT:
Außerdem käme dazu nochmal ein Problem:
Die damit gezeichneten Figuren sind alle nur weiß, da ich ja bei SelectObject als 2.Parameter die Bitmap, anstatt eines HBRUSH übergebe.Wie kann ich diese beiden Probleme lösen?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.