TextColor ändern
-
OK, das muss ich mir dann auch merken, wenn das funktioniert :D.
cu
-
Steht nicht in meiner WinApi Dokumentation.
Welche Dokumentation hast du denn? Eigentlich sollte das drinstehen, sogar in einer älteren.
-
Also in der MSDN steht's drin...
cu
-
Wenn das in deiner Doku nicht drinne steht, dann ist die Doku schlecht!
-
Ja aber jetzt die Preisfrage:
Wie bekommt man es hin, den Text im Static später umzufärben?
Gruss,
Sebastianps: ich weiss es auch nicht
-
Ich nehme alles zurück.
Wüsst ich jetzt auch nicht.
[ Dieser Beitrag wurde am 09.12.2002 um 14:01 Uhr von WebFritzi editiert. ]
-
Wo ist der Haken?
Einfach eine (statische) Variable machen, die den pen der entsprechenden Farbe beinhaltet. Diesen benutzt du bei WM_CTLCOLORSTATIC. In wParam steht ja das HDC drin, vielleicht reicht es, wenn du ein SelectObject aufrufst.Dann kannst du doch jederzeit diese Variable verändern, beim nächsten Neuzeichnen wird die neue Farbe verwendet.
-
Um das mal ein wenig aufzuhellen (sorry, aber ich habe von cd9000s Text nur die Hälfte verstanden): man speichert keinen Pen, sondern eine COLORREF-Variable als static in der WindowProc und setzt diese in WM_CREATE auf die Anfangsfarbe. In WM_CTLCOLORSTATIC benutzt man SetTextColor mit dieser Farbe. Wenn man nun die Farbe des Textes im Static ändern will schreibt man einfach:
// Das ist die static-Variable von Typ COLORREF staticColor = RGB(0,0,0); // Einmal das Static-Control neu zeichnen mit neuer Textfarbe InvalidateRect(hStatic, NULL, TRUE);
-
Mein ich doch.
Ich hab nur gerade nicht nachgedacht, dass man zum Ändern der Textfarbe ja gar keinen HPEN braucht.
-
Na gut.
-
Cool. Ich hoffe, ich finde Zeit, das mal auszuprobieren. Melde mich dann wieder.
-
Yoh also es gibt doch bereits verfügbare Klassen die das übernehmen !
http://codeguru.earthweb.com/staticctrl/ccolorstaticst.shtml