CListView : Jede zweite Spalte die gleiche Farbe



  • Hi wie bekomme ich das hin das jede zweite Spalte die gleiche Farbe hat ?
    Bsp.:
    schwarz
    weiß
    schwarz
    weiß
    schwarz
    weiß

    Ich finde nur die Funktion BOOL SetTextBkColor( COLORREF cr );
    Aber die ändert ja die Farbe des kompletten Views. Ich möchte aber die Hintergrundfarbe jeder einzelnen Items ändern können .

    Hoffe ihr könnt mir helfen .



  • Moin Rafael 🙂

    Ich weis zwar nich ganz genau was du meinst aber vielleicht hilft dir ja das hier weiter:

    ich hab mal mit php in einer dynamischen tabelle so gemacht das die zeilen so aussahen

    grau
    rot
    grau
    rot

    hab mir eine variable "i" gemacht die ich pro zeile inkrementiert habe und dann vor dem schreiben jeder zeile Modulo2 gemacht um 1 oder 0 zu erhalten.
    wenn 0 rauskam hab ich die hintergrundfarbe auf grau gesetzt und bei 1 auf rot.

    btw: was fürn projekt machst du nochmal?



  • Telefonbuch .

    Gut so kann ich das machen aber ich finde keine Methode über die ich die Hintergrundfarbe jeder einzelnen Zeile ändern kann . Ich finde nur eine Methode mit der ich alle Zeilen ändern kann.



  • zeig mal nen screenshot von deinem dialog...







  • http://mitglied.lycos.de/oxse/zeilenproblem.jpg

    Edit:
    URL-Tags berichtigt.
    -dEUs

    [ Dieser Beitrag wurde am 23.05.2003 um 19:15 Uhr von dEUs editiert. ]



  • Hi!

    void CMyDlg::OnCustomDrawList(NMHDR *pNMHDR, LRESULT *pResult)
    {
    NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );
    
        *pResult = CDRF_DODEFAULT;
    
         if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
            {
            *pResult = CDRF_NOTIFYITEMDRAW;
            }
        else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
            {
            COLORREF crBkgnd;
    
            if ( (pLVCD->nmcd.dwItemSpec % 2) == 0 )
                crBkgnd = RGB(255,255,255);
            else 
                crBkgnd = RGB(220,220,220);            
    
           pLVCD->clrTextBk = crBkgnd;
    
           *pResult = CDRF_DODEFAULT;
         }
    }
    

    In die MessageMap ON_NOTIFY(NM_CUSTOMDRAW, IDC_MYLIST, OnCustomDrawList)

    mfg mike



  • Hallöchen,

    ich suche sowas für ne SDI Anwendung mit ListView.
    Weiß irgendwie nicht wo ich die OnCustomDrawList implementieren soll, hier ist es ja beim Dialog, den hab ich ja nicht.
    Dachte eigentlich das ich das bei der Ansicht oder im Ctrl machen muß, ist ja aber nicht so.

    Hat da mal jemand einen Tip oder Link?

    Vielen Dank, Tomasz.


Log in to reply