Hintergrundfarbe Static-Element
-
Wie kann ich bei einem Steuerelement vom Typ static (CreateWindow("static",...)) die Hintergrundfarbe beliebig ändern ohne in den Systemeinstellungen von Windows herumzuspielen ?
Es gibt da die Möglichkeit die Flags "SS_WHITERECT", "SS_GRAYRECT",
"SS_BLACKRECT", "SS_WHITEFRAME", "SS_GRAYFRAME", "SS_BLACKFRAME" beim
Erstellen des Fensters anzugeben.
Aber wie sich schnell erkennen lässt, bekomme ich so nur die Farben Weiß, Grau und Schwarz. Eigentlich will ich ja auch ein Schwarz aber ich will ein dunkleres, denn das von SS_BLACKRECT entspricht der System-Farbe
COLOR_3DDKSHADOW und ich würde diese am liebsten nicht ändern müssen, also wäre ich über eine bessere Lösung sehr froh ^^Mfg Nico
-
Wenn du GetStockObject durch diesen HBRUSH hier ersetzt, müsste das klappen:
(HBRUSH) GetStockObject (SS_WHITERECT); //einfach durch den HBRUSH brush ersetzen HBRUSH brush = CreateSolidBrush (RGB (0, 0, 0));Mfg Ominion
-
mir ist jetzt allerdings noch nicht klar wie ich den HBRUSH jetzt auf mein Fenster bekomme....
Da es sich um ein "static"-Element handelt, gibt es weder eine WindowProzedur, noch eine Nachricht des Fenstern bevor es beginnt zu zeichnen.
Somit seh ich da keine Chance wie ich den HBRUSH auf den Gerätekontext (HDC) bekomme....
-
Du solltest auf "WM_CTLCOLORSTATIC" readieren:
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/staticcontrols/staticcontrolreference/staticcontrolmessages/wm_ctlcolorstatic.asp
-
Cool! Danke! Ich werde es so morgen mal probieren!
Ich dachte so eine Nachricht gibts nur für normale Knöpfe (WM_CTLCOLORBTN)
aber dann hab ich mich da wohl geirrt ^^Thx