Прозрачный Эллипс
Как вы рисуете прозрачный эллипс с GDI? Я старался SetBkMode()
но я все еще получаю белый эллипс бк.
case WM_PAINT:
{
hdc = BeginPaint(hwnd, &ps);
SetBkMode(hdc, TRANSPARENT); // doesnt work
Ellipse(hdc, 0,0,500,500);
EndPaint(hwnd, &ps);
break;
}
1 ответ
Решение
Заимствовано из Fill ellipse в C++:
Эллипс выделяется с помощью текущего пера и заполняется с помощью текущей кисти.
Поэтому вам нужно установить прозрачную кисть. Для этого используйте 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;
}