Hintergrundfarbe per Methode ändern
-
Hallo zusammen,
ich habe einen Dialog in VC++ 6 geschrieben und möchte diesem nun eine Methode SetBackgroundcolor hinzufügen, der man einfach eine COLORREF übergibt und dadurch die Hintergrundfarbe ändert. Ist dies irgendwie möglich?
Grüße
JogileinPS: Bis jetzt habe ich nur Möglichkeiten gefunden die OnCtlColor Nachricht zu überschreiben... aber ich will von außen die Farbe des Dialogs setzen... oder verstehe ich einfach etwas falsch?
-
OnCtlColor dürfte genau der Ansatzpunkt sein, um die Dialogfarben einzustellen. Die Methode wird immer dann aufgerufen, wenn Windows deinen Dialog zeichnen will. Deine Methode SetBkColor kannst du ja verwenden, um den Brush festzulegen, den die Methode zurückgeben soll:
HBRUSH m_BkCol; void SetBkColor(COLORREF color) { if(m_BkCol) DeleteObject(m_BkCol); LOGBRUSH br = {BS_SOLID,color,0}; m_BkCol = ::CreateBrushIndirect(br); } HBRUSH OnCtlColor(...) { return m_BkCol; }
-
Danke hat super geklappt... :)... nur leider schon wieder eine Membervariable mehr