CListBox und Farben?



  • Hallöchen, liebe Helferinnen und Helfer (:D),
    ist es möglich, einzelne String(-teile) in einer ListBox farblich zu ändern?
    Habe hier viel zu WM_CTLCOLOR gefunden. Damit kriege ich aber nur hin, die komplette Box in einer Farbe zu beschreiben.
    Wie mache ich das bloß für einzelne String(-teile)?
    Muss ich meine eigene ListBox erstellen und die OnDraw()-Funktion überschreiben oder geht das auch viel einfacher?

    EDIT: Was ist das eigentlich für ein Control, welches im VC++ benutzt wird? Da, wo man den Code schreibt?
    Dieses Control ändert sogar die Farbe beim Schreiben?!



  • 1. Musst Du wohl selbst machen (Owner draw)
    2. RichEditCtrl, da kann man Textteile unterschiedlich formatieren



  • Mist, ich dachte, es ginge einfacher. 🤡
    Komischerweise, wenn ich ein RicheditCtrl in meinem Dialog einfüge, dann kann er den Dialog nicht öffnen. Muss ich dafür irgendwas beachten?
    EDIT: Ok, bin schon in der MSDN fündig geworden. Danke!



  • Ok, eine doofe Frage habe ich noch.
    Wie schreibe ich in einem RichEditCtrl in eine neue Zeile?
    Scheint trivial, aber es will hier nichts klappen?
    Er schreibt stet in die erste. Und auch da verschwindet die Zeile immer.
    Es sei denn ich schreib zu Beginn in der OnInitDialog()-Funktion, dieser Satz bleibt?!?



  • Zeilenumbrüche gehen mit \r\n, wie bei einem CEdit auch.

    Wenn Du Text in neue Zeilen hinzufügen willst, dann kannst Du es z.B. so machen:

    void MyDlg::AddText( const CString &sAdd )
    {
        CString sText;
        myRichEdit.GetWindowText( sText );
        sText += "\r\n";
        sText += sAdd;
        myRichEdit.SetWindowText( sText );
    }
    

    Wobei die Formatierung kaputt geht, falls Du welche hast.


Anmelden zum Antworten