Label Transparent
-
Guten Tag community,
Ich habe eine kleine Frage, wie kann ich einen Text-Label machen, der einen Transparenten Hintergrund besitzt?
Derzeit sieht mein Code so aus:
label1 = CreateWindow("static", "Username:", WS_VISIBLE | WS_CHILD, 240, 60, 80, 20, hwnd, (HMENU)3, NULL, NULL);
-
Du musst die Message "WM_CTLCOLORSTATIC" bearbeiten und dort "NULL" zurückgeben... und das Control muss mit "WS_EX_TRANSPARENT" angelegt werden...
case WM_CTLCOLORSTATIC: hdcStatic = (HDC) wParam; SetTextColor(hdcStatic, RGB(0,0,0)); SetBkMode (hdcStatic, TRANSPARENT); return (LRESULT)GetStockObject(NULL_BRUSH);
Siehe auch hier:
http://www.cplusplus.com/forum/windows/82662/
-
Diese Methode hat einen klaren Nachteil, dass Artefakte bleiben, wenn man das Label ändert. Wenn es statisch bleibt ist das OK...
Der "nomale" Weg ist eigentlich, dass dennoch eben der Hintergrund des Parents gezeichnet wird.
PS: Die Empfehlung mit der Methode von einem NULL Brush hat mich schon immer geärgert...
-
@Martin: Dann wäre es mal wieder Zeit für einen Blog-Eintrag mit der korrekten Lösung
-