在 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 上设置背景单元格颜色的主要内容,如果未能解决你的问题,请参考以下文章

在 MFC 中更改 CListCtrl 整列的背景颜色

在 iPhone 上设置表格视图单元格的背景颜色

使用 CListCtrl,如何使选择颜色整行?

[DevExpress]GridControl单元格背景色和单元格文字颜色设置

如何设置单元格的背景颜色?

根据单元格中的 HEX 值设置自动颜色背景?