如何在 mfc 中更改列表控件中的突出显示颜色

Sur*_*uri 4 c++ mfc

如何在 mfc 中更改列表控件中的突出显示颜色。我没有在 clistctrl 中找到任何 api。我已经按照 msdn 中的描述覆盖了 NM_CUSTOMDRAW,但是当我单击列表中的任何项目时,它显示一半蓝色和一半黑色,为什么蓝色会出现?

Kir*_*sky 5

您需要覆盖NM_CUSTOMDRAW处理程序。检查此示例

  • 我知道我已经晚了很多年,但对于任何想知道的人来说,在处理“CDDS_ITEMPREPAINT”下的“NM_CUSTOMDRAW”时,您需要从项目状态中删除“CDIS_SELECTED”标志,如下所示:“lplvcd->nmcd.uItemState &” = ~CDIS_SELECTED;`。据我所知,这将强制窗口不绘制该项目,就像它被选择一样,但就控件而言,它仍然会被选择,即通过“CListCtrl::GetItemState”。 (2认同)