Hintergrundfarbe CTabCtrl und CDialog

JoachimJogi

Mitglied
Guten Abend,

gibt es eine Lösung um die Hintergrundfarbe eines CTabCtrl zu ändern? Genauso würde mich auch interessieren, ob man die Hintergrundfarbe eines CDialoges ändern kann.

Ich kenne bisher nur die Möglichkeit mit SetDialogBkColor( RGB(0,80,150), RGB(255,0,0) ); Dieser Methodenaufruf funktioniert aber nur in der CWinApp und betrifft dann sofort alle verwendeten Dialoge im Projekt.

Vielen Dank!
 
Hi,

wenn dein Klasse von einen dieser Klassen (CDialog, CTabCtrl...) abgelitten ist, dann schreibe dir einen Eventhandler für WM_ERASEBKGND!

Dort kannst du dann komplett selbst entscheiden wie der Hintergrund auszusehen hat!

Das sieht dann etwa so aus :

Code:
BOOL MyDlg::OnEraseBkgnd(CDC* pDC) {
    CRect rc;
    GetClientRect(&rc); 
    pDC->FillSolidRect(0,0,rc.Width(),rc.Height(),RGB(255,0,0)); // roter Hintergrund!!
    return 1;
}

Wichtig, ist, dass du TRUE(1) zurückgibst, da ansonsten die Klasse, von der du abgelitten hast, das Zeichnen des Hintergrundes übernimmt.

An dieser stelle kannst du natürlich auch jede andere graphische Aktion durchfühern wie Bitmaps auf deine Oberfläche blitten oder so....

Aber stelle sicher, dass du den gesamten Client-Bereich ausfüllst, weil sonst bekommst du ganz häßliche Effekte ;-)

Viel Erfolg,

Peter
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück