Cómo dibujar texto con color transparente usando WinAPI? De manera habitual utilicé SetBkMode (hDC, TRANSPARENT), pero ahora necesito usar doble buffer. De esta manera las imágenes dibujan correctamente, pero el texto no es correcto (con fondo negro).Cómo dibujar texto con fondo transparente usando C++/WinAPI?
case WM_PAINT:
{
hDC = BeginPaint(hWnd, &paintStruct);
SetBkMode(hDC, TRANSPARENT);
HDC cDC = CreateCompatibleDC(hDC);
HBITMAP hBmp = CreateCompatibleBitmap(hDC, width, height);
HANDLE hOld = SelectObject(cDC, hBmp);
HFONT hFont = (HFONT)SelectObject(hDC, font);
SetTextColor(cDC, color);
SetBkMode(cDC, TRANSPARENT);
TextOut(cDC, 0, 0, text, wcslen(text));
SelectObject(cDC, hFont);
BitBlt(hDC, 0, 0, width, height, cDC, 0, 0, SRCCOPY);
SelectObject(cDC, hOld);
DeleteObject(hBmp);
DeleteDC(cDC);
EndPaint(hWnd, &paintStruct);
return 0;
}
De esta manera funciona) No como esperaba, pero funciona. algunas regiones con fondo negro, pero creo que puedo arreglarlas. ¡Gracias! – Alexander