Transparenz für "STATIC"-Steuerelement
-
Hallo zusammen,
wie kann ich für ein "STATIC"-Steuerelement festlegen, daß der Hintergrund transparent sein soll?
Gibt es beim CreateWindowEx ein Flag bzw. etwas geeignetes für SendMessage?
Danke
Steffen
-
Die Forensuche funktioniert wieder: Static transparent machen
-
Hi Flenders,
Danke erst mal!
Jetzt habe ich allerdings das Problem, daß das transparente "STATIC" sich nicht neu zeichnet, wenn z. B. ein Resize durchgeführt wird usw.
Also, er übernimmt bei der Größenänderung des Fensters den Hintergrund genau an den Stellen, an denen die Statics transparent sind.
Hast Du eine Idee?
-
Da steht doch:
Update mal das darunterliegende Fenster
-
An welcher Stelle sollte es denn stehen?
-
In dem FAQ-Beitrag steht das.
Du resized doch das Control mit MoveWindow, oder? Dann machst du dannach noch ein InvalidateRect.
-
asdfasdf schrieb:
Du resized doch das Control mit MoveWindow, oder? Dann machst du dannach noch ein InvalidateRect.
Nein, ich meinte die Größenänderung des Fensters, wenn man es mit der Maus zusammen- oder aufzieht. Eine WM-Nachricht für das Resize habe ich nicht, da ich es nicht benötige.
Gibt es dennoch eine Möglichkeit?
-
Hast du bei deiner Fensterklasse bei den Styles CS_HREDRAW und CS_VREDRAW (mit)angegeben? Ansonsten hilft evtl. auch ein InvalidateRect bei WM_SIZE

-
Beides habe ich angegeben, InvalidateRect im WM_SIZE bringt ebenfalls keine Ergebnisse.

Hilfe...
-
Ist zwar etwas dirty, aber evtl. hilft es, die Controls kurz aus- und dann wieder einzublenden

-
Ist vielleicht nicht die edelste Lösung, aber im Moment funktioniert es.

Danke.
-
Bis jetzt war alles schön und gut! Ich den gleichen Fall, jedoch liegt "Static" nicht auf einem Fensterhintergrund, sondern auf einem "BS_GROUPBOX"-Element.
Dieses erstellte ich so:
hwnd = CreateWindowEx(0, "BUTTON", "", WS_CHILD | WS_VISIBLE | BS_GROUPBOX | !WS_BORDER, 1,1,100,100, hFenster, (HMENU)10001, hInst, NULL);Das hier funktioniert leider nicht mehr:
case WM_CTLCOLORSTATIC: { SetTextColor((HDC)wParam, RGB(0,0,0)); SetBkMode((HDC)wParam, TRANSPARENT); return (LRESULT)GetStockObject(NULL_BRUSH); break; }Die Statics werden nicht mehr transparent. Kennt jemand eine Lösung dazu?
Grüße