Farbe der Listbox ändern



  • Hi Leute,

    weiß jemand, wie ich die Farbe einer Listbox ändern kann??? Finde keine Funktion dafür. Hoffe mir kann jemand helfen.

    MFG SPAXX



  • Servus,

    HBRUSH CDeinDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
        if (pWnd->GetDlgCtrlID()==ID_CONTROL)
        {
            pDC->SetTextColor(RGB(255,0,0)); //Textfarbe
    	pDC->SetBkMode(TRANSPARENT);
            HBRUSH B = CreateSolidBrush(RGB(192,192,192)); //Hintergrundfarbe
            return (HBRUSH) B;
        }
    
        return hbr;
    }
    

    Fügst die Funktion OnCtlColor ein und schreibst das darein. ID_CONTROL muss die ID deiner ListBox sein.
    Der Rest erklärt sich glaube ich von selbst. *faulist* 😃

    Viel Spass
    *winke*
    Hellsgore

    PS: Glaube das steht auch irgendwo in der FAQ - MFC



  • ich habe jetzt in der View die Methode angelegt. Und der bringt mir bei

    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    einen Fehler. Der sagt, das ich auf die Methode keinen Zugriff habe, da sie protected ist. Macht das einen Unterschied, ob ich eine Dialogfeldbasierende oder eine SDI Anwendung??? habe nämlich SDI.



  • sorry, mein Fehler. Jetzt gehts. thx



  • aber noch ne kleine Frage. Kann ich da auch die Hintergrundfarbe des Programms ändern bzw. Die Button Farbe etc.?? wenn ja wie?? Meine Versuche das abzuleiten sind fehlgeschlagen.


Anmelden zum Antworten