如何使用GDI绘制透明椭圆?我试过了SetBkMode()
,但我还是得到了一个白色椭圆bk。
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SetBkMode(hdc, TRANSPARENT); // doesnt work
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}
答案 0 :(得分:11)
使用当前笔勾勒出椭圆,使用当前笔刷填充 。
因此,您需要设置透明画笔。为此,使用GetStockObject(HOLLOW_BRUSH)
获取它,并SelectObject()
为给定的设备上下文激活它。所以你的代码可以是这样的:
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}