我有一个包含 3 个列的 ListView 。前两列有值,第三列为空。我想知道,我怎样才能在第三列中插入彩色文本?我不想为整行着色,只为第三列着色。
提前致谢!
坎比
最佳答案
您可以使用 CustomDraw 处理程序执行此操作,引用:MSDN Developing Custom Draw Controls in Visual C++ .
基本上它很简单(而且 MSDN 很长)但归结为以下内容:
将其中一个添加到常用位置:
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
然后将这个方法添加到类中。
void CMyListView::OnCustomDraw(NMHDR* nmhdr, LRESULT* result) { LPNMLVCUSTOMDRAW vcd = (LPNMLVCUSTOMDRAW)nmhdr; switch(vcd->nmcd.dwDrawStage) { case CDDS_PREPAINT : { *result = CDRF_NOTIFYITEMDRAW; break; } case CDDS_ITEMPREPAINT: { vcd->clrText = RGB(255,0,255); //change the colour of the second row. *result = CDRF_NOTIFYSUBITEMDRAW; break; } default: *result = 0; break; } return; }
关于c - 如何在 ListView 中插入彩色文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2282621/