Einsteigerfrage: Hintergrundfarbe bei Dialogen
-
Hi Leute,
bevor ihr jetzt schreibt 'guck in die faq',
das hab ich gemacht und nix gefunden.
Nun zu meiner Frage:
Wie verändere ich die hintergrundfarbe in einem dialog?ich hab in OnIniDialog geschrieben
this->GetDC()->SetBkColor(RGB(255,255,255) ); //hintergrund soll weissAber irgendwie passiert nix. Danke im voraus.
MfG RobRoy
-
SetDialogBkColor(RGB(0,0,0,),RGB(255,255,255));
Codeabschnitt muss in die InitInstance.
Beispiel färbt Background schwarz und Foreground weiß.
-
OnCtlColor überschreiben und ein Brush zurückgeben:
return GetStockObject(WHITE_BRUSH);
-
achja, aus der MSDN
CWinApp::SetDialogBkColor
This function is obsolete.Remarks
To set the background color of the dialog box, you must handle WM_CTLCOLOR. This message changes the color of the specified dialog box only.
-
Shlo schrieb:
achja, aus der MSDN
CWinApp::SetDialogBkColor
This function is obsolete.Remarks
To set the background color of the dialog box, you must handle WM_CTLCOLOR. This message changes the color of the specified dialog box only.Dank WM_CTLCOLOR habe ich jetzt die Funktion OnCtlColor.
Darin kann ich auch pDC->SetTextColor(RGB(255, 0, 0)); ausführen.Jetzt kann ich zwar die Hintergrundfarbe aller Steuerelemente bestimmen, die Farbe des ganzen Dialoghintergrunds bleibt aber unbeeinflusst.
Gibt es dafür eine einfache und schnelle Lösung?
-
Einfach und schnell?

Kannst haben. Ist aber ein PFUSCH!
Kommt in die OnPaint() (WM_PAINT)
In den else-Teil//Füllfarbe COLORREF color = RGB(255,0,0); //Zeichenfläche CPaintDC dc(this); //Zeichenbereich CRect rect; GetClientRect(&rect); //Lienienfarbe CPen pen(PS_SOLID,1,color); CPen *oldpen = dc.SelectObject(&pen); //Flächenfarbe CBrush brush(color); CBrush *oldbrush = dc.SelectObject(&brush); //Zeichne ein Rechteck dc.Rectangle(rect); //Gib die alten Objecte zurück dc.SelectObject(oldpen); dc.SelectObject(oldbrush);BYE

-
Vielen Dank.
Für meinen Anwendungsfall reicht dies auch erst einmal aus.