Ahoi, ich habe eine Frage und zwar habe ich mit hilfe des Assistenten von VC++ ein dialogfeldbasierendes Programm erstellt nun klappt alles so wie es sollte allerdings wollte ich die Farbe von grau auf grün verändern kann gibts es dafür auch einen Editor oder muss ich es im Quellcode machen ? Kann mir jemand ein paar Tipps geben.
Hi Valentin,
da mußt Du ein bißchen programmieren, aber es hält sich in Grenzen:
Sagen wir mal, Deine Dialogklasse heißt CMyAppDlg. Dieser Klasse mußt Du mit dem Klassenassistenten eine Behandlungsroutine für die Nachricht WM_CTLCOLOR hinzufügen. Die neue Behandlungsroutine paßt Du jetzt folgendermaßen an:
HBRUSH CMyAppDlg::open\_mouth:nCtlColor(CDC\* pDC, CWnd\* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::open\_mouth:nCtlColor(pDC, pWnd, nCtlColor);
// Hintergrundfarbe des Dialogs: rot=0, grün=255, blau=0
COLORREF crGreen(RGB(0,255,0));
// Brush mit der Hintergundfarbe erstellen
static CBrush brushGreen(crGreen);
if (nCtlColor==CTLCOLOR\_DLG || nCtlColor==CTLCOLOR\_STATIC )
{
// den Hintergrund des Dialogs und der statischen Steuerelemente einfärben:
hbr=HBRUSH(brushGreen);
pDC-\>SetBkColor(crGreen);
}
return hbr;
}
Und das wär’s dann auch schon. Wenn Du eine andere Farbe willst, mußt Du die RGB-Werte von crGreen ändern.
Viel Erfolg!
Uwe
Hat wunderbar geklappt danke schön.
Valentin
Noch ne Frage wie kann ich die Farbe der Buttons ändern ?
Noch ne Frage wie kann ich die Farbe der Buttons ändern ?
Hi Valentin,
die Sache mit dem Dialog-Hintergrund war relativ einfach, aber bei den Buttons wird es schwieriger. Da helfen nur OwnerDraw-Buttons. Das heißt, Du mußt eine Klasse von CButton ableiten und die Klasse mit eigenen Zeichenfunktionen erweitern. Das ist recht aufwendig und auch nicht ganz einfach.
Es gibt solche Klassen aber fertig im Netz, z.B.:
http://www.codeguru.com/Cpp/controls/buttonctrl/arti…
=> ziemlich weit unten auf der Seite findest Du einen Link, mit dem Du ein komplettes Beispiel-Projekt runterladen kannst. Das sollte helfen…
Gruß
Uwe