ste color statictext
-
hallo
habe ein problem
wie kann ich einem static text eine farbe zuweisen
bin anfänger wäre schön es
:o ausführlich zu beschreiben
danke!
-
Hallo.
Ungefähr so:
HBRUSH CDeineKlasse::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Attribute des Gerätekontexts hier ändern if(nCtlColor == CTLCOLOR_STATIC ) { if (pWnd->GetDlgCtrlID () == IDC_STATIC) { pDC->SetTextColor(RGB(0,0,255)); } return hbr; } // TODO: Anderen Pinsel zurückgeben, falls Standard nicht verwendet werden soll return hbr; }
Cu
Oli
-
Hi,
ich hab da ein ähnliches Problem. Allerdings will ich den Hintergrund eines Radiobuttons, d.h. da wo der Text steht in einer anderen Farbe darstellen.
Dafür hab ich in der if-Abfrage auf CTLCOLOR_BTN geändert, aber das funzt trotzdem nicht. Die Radiobuttons werden übrigens dynamisch erzeugt.Hat dafür jemand ne Lösung ich hab schon die Suchfunktion bemüht, aber leider nix gefunden.
THX
Manuela
-
hallo ole
wie rufe ich die methode OnCtlColor
auf
kann ich auch einzelne staticfelder ändern
-
Hallo ela.
Ich habe mir mal ein Demo-Projekt aus dem Internet runtergeladen, wo der Hintergrund von Eingabefeldern geändert wird.
Da ist es nicht so wei bei der OnCtlColor-Funktion, wo sich bloß der Hintergrund ändert, wo was steht.
Bin leider noch nicht dazugekommen, das Projekt mal anzuschauen.
Müßtest allerdings für Radio-Button umschreiben.
Wenn ich es Dir mal schicken soll, kannst Du dich bei mir melden.
zschaege_o@zahoransky.deCu
Oli
-
Hallo wisky70
OnCtlColor ist eine Windows-Nachricht und kannst/mußt Du über den Klassenassisten Deiner kallse einfügen
Unterscheiden der einzelnen Static-Felder könnte so gehen.
if(nCtlColor == CTLCOLOR_STATIC ) { if (pWnd->GetDlgCtrlID () == IDC_STATIC1) { pDC->SetTextColor(RGB(255,255,255)); pDC->SetBkColor(RGB(0,0,255)); } return hbr; } // TODO: Anderen Pinsel zurückgeben, falls Standard nicht verwendet werden soll return hbr;
Hoffe ich konnte Dir weiter helfen.
Cu
Oli
-
Hallo Leute,
ich habe auch gerade mit der selbe Problem zu kämpfen, ich habe den ersten teil schon geschaft. Ich kann ein Staticfeld farbig datstellen. Wie kann ich aber bei
bestimmte Ereignisse diese Funktion nochmal aufrufen und ihn andere Farben zuweisen.
-
hi
genau das ist auch meine frage
wie rufe ich OnCtlColor mehrmals auf
-
OnCtlColor wird nicht von dir aufgerufen.
Das Childwindow schickt diese Nachricht wenn es sich zeichnet.Du musst z.B. eine Membervariable anlegen in der die Farbe notiert ist.
Wenn du keine Membervariable nehmen willst dann entscheidest du in OnCtlColor welche Farbe genommen werden soll.
Um das ChildWindow neu zu zeichnen: RedrawWindow
/E:
Bei www.codeguru.com gibt es fertige "Color-Static, Color-Edit" Klassen bei denen du einfach über eine Methode die Farben setzen kannst.Um so was selber zu basten mal in der MSDN unter "message reflection" schauen.
[ Dieser Beitrag wurde am 21.01.2003 um 17:30 Uhr von Nemesyzz editiert. ]
-
wisky70: Zuviel gesoffen oder warum die roten Köpfe?
:o