在 CListCtrl 上设置背景单元格颜色
Posted
技术标签:
【中文标题】在 CListCtrl 上设置背景单元格颜色【英文标题】:Set background cell color on CListCtrl 【发布时间】:2016-09-14 09:44:01 【问题描述】:我在项目中有一张桌子:
现在我想让一些行着色,所以我尝试了
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;
但行的颜色不会改变。我该如何解决这个问题?
附:对,“病”有误……
【问题讨论】:
How to change color of CListCtrl column的可能重复 【参考方案1】:您的问题的答案在https://***.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);
【讨论】:
以上是关于在 CListCtrl 上设置背景单元格颜色的主要内容,如果未能解决你的问题,请参考以下文章