Kiryn
September 7th, 2007, 12:44 AM
I create a double buffer with a bitmap. And no more flickering yay!!!
But I get a black background and now I can't figure out how to change it back to grey
case WM_PAINT:
{
RECT bufferRect;
::GetClientRect(hWnd, &bufferRect);
int buffer_x = bufferRect.right - bufferRect.left;
int buffer_y = bufferRect.bottom - bufferRect.top;
hdc = ::BeginPaint(hWnd, &ps);
hdcBuffer = ::CreateCompatibleDC(hdc);
buffer = ::CreateCompatibleBitmap(hdc, buffer_x, buffer_y);
::SelectObject(hdcBuffer, buffer);
::Rectangle(hdcBuffer, 50, 50, 200, 100);
::BitBlt(hdc, 0, 0, buffer_x, buffer_y, hdcBuffer, 0, 0, SRCCOPY);
::DeleteDC(hdcBuffer);
::DeleteObject(buffer);
::ReleaseDC(hWnd, hdc);
::EndPaint(hWnd, &ps);
}
break;
But I get a black background and now I can't figure out how to change it back to grey
case WM_PAINT:
{
RECT bufferRect;
::GetClientRect(hWnd, &bufferRect);
int buffer_x = bufferRect.right - bufferRect.left;
int buffer_y = bufferRect.bottom - bufferRect.top;
hdc = ::BeginPaint(hWnd, &ps);
hdcBuffer = ::CreateCompatibleDC(hdc);
buffer = ::CreateCompatibleBitmap(hdc, buffer_x, buffer_y);
::SelectObject(hdcBuffer, buffer);
::Rectangle(hdcBuffer, 50, 50, 200, 100);
::BitBlt(hdc, 0, 0, buffer_x, buffer_y, hdcBuffer, 0, 0, SRCCOPY);
::DeleteDC(hdcBuffer);
::DeleteObject(buffer);
::ReleaseDC(hWnd, hdc);
::EndPaint(hWnd, &ps);
}
break;