我創建了一個可以正常工作的動畫,但是它會彈出。我需要雙緩衝的幫助,因爲我對它一無所知。雙緩衝幫助
這是我的OnPaint()方法的代碼:
VOID onPaint(HDC hdc)
{
Graphics graphics(hdc);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawEllipse(&pen, sf , 0, 10, 10);
}
它工作正常,但閃爍。我試過這個代碼,但它沒有工作:
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);
}
您可以通過縮進四個空格來格式化您的代碼。 – 2010-08-10 22:28:32
感謝您的提示,但對於我的問題 – Ramilol 2010-08-10 22:30:50
在您的代碼示例中的任何想法,它看起來像你blitting新制作的內存DC,然後*然後*繪製它,這是通常的做法相反。 – JustJeff 2010-08-10 22:36:46