CListBox BKColor !?



  • hi,

    kennt jemand ne klasse, die die hintergrundfarbe eines CLIstBox -controls ändern kann ?? wenns geht sollte die auch den text färben können.
    mit CColorListBox kannste ja nur den text färben.

    wenn man's auch anders lösen kann, her damit 😃



  • Schau mal bei www.codeproject.com vorbei. Die haben da 2 Klassen die sowas können (XListBox und ListBoxCH)....kann dir den Link leider grad net geben, die seite is down



  • die hier sieht ganz gut aus (ListBoxCH).
    die muß ich mir mal angucken 😋

    danke !!



  • jep
    hab beide ausprobiert

    CListControlStyled ( so glaub ich )

    und die

    XCList ( die mit dem X halt )

    ich würd dir die mit dem X nehmen 😉

    die ist erweitert und erlaubt viel mehr. auf ne progressbar in einem subitem ect.



  • die klassen sind ganz gut, mir fehlt nur noch das der hintergrund vom listbox-control mitgefärbt wird. vielleicht hab ich das schlecht ausgedrückt.
    bei XListBox (die ist echt gut) wird der hintergrund von dem selektierten item gefärbt; habt ihr ne lösung wie den kompletten hintergrund des controls färben kann ??
    damit würdet ihr mir echt weiter helfen !!

    trotzen fetten dank 🕶



  • Also bis jetzt habe ich noch keine KLasse gefunden die alles färben kann. Nur die ITemhintergründe. Ich habs über ein Dynamisches Resizen gemacht, funktioniert auch.



  • Hallo,

    um die Hintergrundfarbe einer CListBox zu ändern, kann man so vorgehen:

    Mit dem Klassenassistenten für den Dialog, der die ListBox enthält, eine Nachrichtenbehandlungsfunktion für WM_CTLCOLOR hinzufügen. Dort folgendes einfügen:

    HBRUSH CDlgTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    	const COLORREF BK_COLOR = RGB(255,255,0); // Hintergrund gelb
    	const COLORREF FG_COLOR = RGB(255,0,0);   // Texteinträge rot
    
    	if (nCtlColor == CTLCOLOR_LISTBOX)
    	{
                static CBrush s_brush(BK_COLOR);
                pDC->SetBkColor(BK_COLOR);    
                pDC->SetTextColor(FG_COLOR);  
                return s_brush;               
    	}
    
    	return hbr;
    }
    

    MfG



  • jo, habs eben ausprobiert ^^ geil.
    danke dir !!


Anmelden zum Antworten