2013-11-25 4 views
0

Ive сделал CListCtrl в представлении отчета в MFC. Я хочу покрасить первый столбец (полный столбец, а не только те ячейки, где есть элемент) с серым фоном.Изменить Цвет фона полного столбца CListCtrl в MFC

Как я могу это сделать? Thank

+1

Возможный дубликат http://stackoverflow.com/q/19682479/385646 – MikMik

+0

Я бы реализовать 'CMFCLisCtrl' производный класс и переопределить' OnGetCellBkColor' метод. Все намного проще, чем с пользовательскими ничьей. У меня было это как ответ здесь, но некоторые модераторы удалили его, потому что он/она считал, что он равен тому, который я предоставил на http://stackoverflow.com/a/37571685/383779 'OnGetCellBkColor' и' OnGetCellTextColor' - разные вещи! **БЕЗ РАЗНИЦЫ!** – sergiol

ответ

0

Как вы реализуете это, цвет каждой ячейки первой строки индивидуально. Код будет выглядеть примерно так, как показано ниже: в основном это синий шрифт, но он должен работать (примечание: я не тестировал это для этого сообщения). Вам нужно будет использовать lplvcd->iSubItem и нарисовать первый столбец каждой строки.

void MyList::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
    NMLVCUSTOMDRAW* cd = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR); 

    *pResult = CDRF_DODEFAULT; 

    switch(cd->nmcd.dwDrawStage) 
    { 
     case CDDS_PREPAINT: 
      *pResult = CDRF_NOTIFYITEMDRAW; 
      break; 

     case CDDS_ITEMPREPAINT: 
      { 
       int rowNumber = cd->nmcd.dwItemSpec; 
       bool highlightRow = (bool)GetItemData(rowNumber); 
       if (highlightRow) 
       { 
        COLORREF backgroundColor; 
        backgroundColor = RGB(255, 0, 0); 
        cd->clrTextBk = backgroundColor; 
       } 
      } 
      break; 
     case CDDS_SUBITEM | CDDS_ITEMPREPAINT: 
      { 

       // something like if(lplvcd->iSubItem == 0) to paint first column 
       lplvcd->clrText = RGB(0,0,255); 


       *pResult = CDRF_NEWFONT; 
       return; 
      } 

     default: 
      break; 
    } 
} 
0

Здесь представлены две прекрасные статьи, которые описывают пользовательский чертеж в деталях.

Part I & Part II