我在这个程序中使用 BitBlt 时遇到问题。您调整窗口大小,椭圆也随之调整大小。当然,使用普通的 hdc 方法,它是波涛汹涌的和闪烁的。我尝试了 BitBlt 方法,但这也不起作用(可能是因为我做错了)。有人可以解决我的错误吗?谢谢
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;