繁体   English   中英

在CListCtrl上设置背景单元格颜色

[英]Set background cell color on CListCtrl

我在项目中有一张桌子:

现在我想对某些行进行着色,所以我尝试了

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;
}

但是行的颜色没有改变。 我该如何解决这个问题?

PS:是的,“疾病”有误...

您问题的答案在https://stackoverflow.com/a/19701300/383779

CMFCListCtrl派生一个由您制作的类, 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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM