我正在尝试自定义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
以外的其他功能?