Hintergrund und Textfarben per Mausklick ändern

stefan-rw

Mitglied
Hallo.

Ich möchte gern die Hintergrund und Textfarben meiner Steuerelemente bzw. meines Dialoges als reaktion auf einen Mauskklick ändern.

Leider steige ich durch die MFC interne Verwaltung der einzelnen Methoden/Ereignisse nicht so wirklich durch.

Was genau ist die WM_ERASEBACKGROUND (oder so ähnlich)

Wie kann ich der OnCtlColor meine eigenen Werte übergeben ?

Nutze ich dazu überhaupt die OnCtlColor oder eher die OnPaint-Methode?

Wann wird die OnPaint-Methode aufgerufen, und wie kann ich sie selbst aufrufen?

Kann mir jemand einen Beispiel-Code geben, der auf auf ein beliebiges Ereignis(z.B. Mausklick) die enstprechenden Methoden aufruft ?

Danke euch im Voraus

Gruss
Stefan
 

stefan-rw

Mitglied
Ok Ok... Habs schon

mit WM_CTLCOLOR und OnCtlColor als behandlungsroutinen.

in der OnCtlColor einfach mit

hbr=CreateSolidBrush(RGB(R,g,b)); nen neuen Brush erstellen.

Tip: wenn man vorher auf nCtlColor==CTLCOLOR_STATIC vergleicht, lassen sich alle Textfelder gleichzeitig ändern.

In der Behandlungsroutine für das Ereignis ruft man dann die Invalidate() Methode des zu ändernden Elements auf. Nicht vergessen vorher die Variablen r,g,b mit den neuen Werten zu initialisieren.

ALso.. Viel Spass

Stefan