我在此程序中使用BitBlt時遇到問題。您調整窗口大小並調整橢圓大小。當然,用正常的HDC方法,它是波濤洶涌,波濤洶涌。我嘗試了BitBlt方法,但這也不起作用(可能是因爲我做錯了)。 有人可以解決我什麼我donig錯了嗎?感謝名單BitBlt問題GDI
bool sizing; //global
case WM_PAINT:
{
RECT rect;
GetClientRect(hwnd, &rect);
hdc = BeginPaint(hwnd, &ps);
mem = CreateCompatibleDC(hdc);
SelectObject(mem, GetStockObject(HOLLOW_BRUSH));
if(sizing)
{
Ellipse(mem,rect.left, rect.top, rect.right, rect.bottom);
}
BitBlt(hdc, rect.left, rect.top, rect.left - rect.right, rect.top -rect.bottom , mem, rect.left, rect.top, SRCCOPY);
DeleteDC(mem);
EndPaint(hwnd, &ps);
break;
}
case WM_SIZE:
sizing = true;
break;
您必須處理WM_ERASEBKGND以避免閃爍。 – 2011-05-27 00:42:19