Static einfärben.
-
Schau' dir mal **CWnd::OnCtlColor()**an.
-
@ orroz
Und was mache ich mit meiner Schrift?
Die ist nicht mehr zu sehen.@ Uwe Philipps
MSDN ist nicht installiert, und ich komm auch gerade nicht dran.
-
WM_CTLCOLOR <- siehe MSDN !
-
Der vollständigkeit halber
CDC* pDC; pDC = m_static.GetWindowDC(); CRect rect; m_static.GetClientRect( &rect ); // Hintergrund setzen pDC->SetBkMode(OPAQUE); // Hintergrund malen pDC->FillSolidRect( rect, RGB(200,200,0)); // Texthintergrund pDC->SetBkColor(RGB(100,200,100)); // Textfarbe pDC->SetTextColor(RGB(0,0,300)); // Text pDC->DrawText( "Static", rect, DT_LEFT);
Gruß
orroz
-
@orroz
Der Vollständigkeit halber:
Einfach über die Kontrolle drübermalen sollte man nur, wenn es wirklich nicht anders geht...
-
@Uwe Philipps
Gebe dir ja recht. Es sollte ja auch nur eine möglichkeit beschreiben, wie man es machen kann. Natürlich gibt es auch andere Wege. Muss "haedfinger" letztendlich selber entscheiden, für welche methode er sich entscheidet.
gruß
-
Versuchs mal so, einfach in die WM_CTLCOLOR schreiben
if (pWnd->GetDlgCtrlID() == ID_DEINES_STATICS) { pDC->SetTextColor(RGB(0,0,2550)); // Setzt die Textfarbe auf blau HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0)); //Setzt die Hintergrundfarbe auf rot return (HBRUSH) hBrush; }
Gruß
:: NoName ::
-
Natürlich kannst du dir auch das Steuerelement ableiten und im Steuerelement selbst die Farbe setzen.
-
Habe die NoName - Variante genommen.
Ist sehr einfach und effektiv.
Muß ich da auf nochwas achten?Irgendwas deleten oder so?
-
Ne, musst du nicht. Es wird ja schließlich nicht dynamisch erstellt...
Gruß
:: NoName ::