J'ai créé une animation qui fonctionne bien, mais elle se tourne. J'ai besoin d'aide pour le double tampon, car je n'en sais rien.Aide à la double-mise en mémoire tampon
Voici le code dans mon OnPaint():
VOID onPaint(HDC hdc)
{
Graphics graphics(hdc);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawEllipse(&pen, sf , 0, 10, 10);
}
Il fonctionne très bien, mais avec le scintillement. J'ai essayé ce code mais cela n'a pas fonctionné:
VOID onPaint(HDC hdc,HWND hWnd)
{
HDC hDC=GetDC(hWnd);;
HDC memDC = CreateCompatibleDC(hDC);
HBITMAP hMemBmp = CreateCompatibleBitmap(hDC,10,10);
HBITMAP hOldBmp = (HBITMAP)SelectObject(memDC,hMemBmp);
BitBlt(hDC, 0, 0, 10, 10, memDC, 0, 0, SRCCOPY);
Graphics graphics(memDC);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawEllipse(&pen, sf , 0, 10, 10);
// Always select the old bitmap back into the device context
SelectObject(memDC, hOldBmp);
DeleteObject(hMemBmp);
DeleteDC(memDC);
}
Vous pouvez formater votre code en l'indentant de quatre espaces. –
merci pour le conseil mais aucune idée pour mon problème – Ramilol
dans votre exemple de code, on dirait que vous êtes en train de mixer la nouvelle mémoire DC, et * ensuite * de dessiner dessus, ce qui est un peu contraire à la façon habituelle de le faire . – JustJeff