How do you draw a transparent ellipse with GDI? I tried SetBkMode()
but I still get a white ellipse bk.
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SetBkMode(hdc, TRANSPARENT); // doesnt work
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}
Borrowed from Fill an ellipse in C++:
The ellipse is outlined by using the current pen and is filled by using the current brush.
Therefore, you need to set a transparent brush. For that, use GetStockObject(HOLLOW_BRUSH)
to obtain it and SelectObject()
to activate it for a given device context. So your code can be like this:
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With