Transparente win32-Fenster und text

Ich versuche Vollbild transparent randlos-Fenster mit text, der angezeigt perfekt oben drauf. Der text, der hintergrund sollte transparent sein, aber nicht die tatsächliche font face natürlich. Das problem ist, dass ich nur sehen TextOut angezeigt, wenn ich das nicht tun SetWindowRgn. Ich habe keine Ahnung, was ich falsch mache 🙁

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   hInst = hInstance;

   DWORD Flags1 = WS_EX_COMPOSITED | WS_EX_LAYERED | WS_EX_NOACTIVATE | WS_EX_TOPMOST | WS_EX_TRANSPARENT;
   DWORD Flags2 = WS_POPUP;

   hWnd = CreateWindowEx(Flags1, szWindowClass, szTitle, Flags2, 0, 0, 1920, 1200, 0, 0, hInstance, 0);

   if(!hWnd)return FALSE;

   HRGN GGG = CreateRectRgn(0, 0, 0, 0);
   SetWindowRgn(hWnd, GGG, false);

   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   DeleteObject(GGG);

   return TRUE;
}

    case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);

    SetBkMode(hdc, TRANSPARENT);
    TextOut(hdc, 50, 50, L"MY TEXT", lstrlen(L"MY TEXT"));

    EndPaint(hWnd, &ps);
  • Ja, es ist in der Tat schwer zu sehen, eine 0 x 0 pixel-Fenster. Pass vernünftige Werte zu CreateRectRgn().
  • Ich habe versucht mit 0, 0, 1920, 1200 und jetzt ist nichts unsichtbar ist, möchte ich den gesamten Bildschirm unsichtbar 🙁
  • Können Sie bitte fügen Sie diese Lösung auf Github mit einem transparenten Fenster mit einem Rahmen (so können wir sehen, wo das Fenster ist durchsichtig) und ein Kind-Fenster (wie ein button) bitte? Das wäre so toll, die Art, wie wir lernen können, meine zu sehen, wie Sie das bewerkstelligen. Und bitte einen link. Vielen, vielen Dank!
InformationsquelleAutor Kachinsky | 2013-03-25
Schreibe einen Kommentar