我在此程序中使用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