CListCtrl:更改所选项目的颜色

时间:2016-10-07 08:36:42

标签: c++ mfc

我正在尝试自定义CListCtrl - 列表中当前所选项目(行)的颜色。

void CMyList::OnCustomdraw(NMHDR* pNMHDR, LRESULT* pResult)
{
    if (myList.GetItemState(pLVCD->nmcd.dwItemSpec, LVIS_SELECTED) == LVIS_SELECTED)
    {
        pLVCD->nmcd.uItemState &= ~CDIS_SELECTED; // deselect item to enable custom coloring
        pLVCD->clrTextBk = SELECTION_BK_COLOR;
    }
}

着色本身很好,但是当我打电话给myList.GetFirstSelectedItemPosition()时,它当然会失败。

如果我没有将状态设置为未选中,则会覆盖着色。

我该怎么办?我是否必须覆盖OnCustomdraw以外的其他功能?

0 个答案:

没有答案