2016-09-14 3 views
0

У меня есть таблица в проекте:Установить цвет фона ячейки на CListCtrl

http://s017.radikal.ru/i440/1609/c0/ad128b583ad8.jpg

Теперь я хочу, чтобы сделать некоторые из строк цвета, поэтому я попытался

SetTextBkColor(RGB(122,0,122)) 

предыдущая строка находится в в следующем контексте:

BOOL SickLeaveViewPreviousTab::OnInitDialog() 
{ 

    BOOL result = CDialog::OnInitDialog(); 

    setHighlighted(); 

    listCtrl.InsertColumn(0,"Name",LVCFMT_CENTER,80); 
    listCtrl.InsertColumn(1,"Surname",LVCFMT_CENTER,120); 
    listCtrl.ShowGrid(); 

    for (int x=0;x<_previous->length();++x) 
    { 
     shared_ptr<SickLeave> sickLeave = _previous->get(x); 
     listCtrl.InsertItem(x,_patient->getName().c_str()); 
     listCtrl.SetItemText(x,1,_patient->getSurname().c_str());   
     listCtrl.SetTextBkColor(RGB(122,0,122)); 
    } 
    UpdateLayout(); 
    ReleaseResources(); 
    return result; 
} 

Но цвет строк не меняется. Как я могу решить проблему?

P.S. Да, есть ошибка в «заболеваемости» ...

+0

Возможный дубликат [Как изменить цвет столбца CListCtrl] (http://stackoverflow.com/questions/19682479/how-to-change-color-of-clistctrl-column) – IInspectable

ответ

2

Ответ на ваш вопрос находится на https://stackoverflow.com/a/19701300/383779

выведет сделанный по-вами класс из CMFCListCtrl, который в своей очереди, является производным от CListCtrl. Затем переопределите метод OnGetCellBkColor так, как хотите.

COLORREF CMyColorfulListCtrl::OnGetCellBkColor(int nRow,int nColumn) 
{ 
    if (nRow == THE_ROW_IM_INTERESTED_IN) 
    { 
     return WHATEVER_COLOR_I_NEED; 
    } 
    return CMFCListCtrl::OnGetCellBkColor(nRow, nColumn); 
} 
Смежные вопросы