WinAPIを使用して透明な色でテキストを描画する方法は? 通常の方法で私はSetBkMode(hDC、TRANSPARENT)を使いましたが、今はダブルバッファを使う必要があります。 このようにして、画像は正しく描画されますが、テキストは正しく描画されません(背景は黒です)。透明な背景を持つテキストを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;
}
この方法で動作します。いくつかの黒い背景の領域が、私はそれらを修正することができますと思います。ありがとう! – Alexander