如何在ListView中插入彩色文本?

我有一个3 coloumns listview。 前两列有值,第三列是空的。 我想知道,我怎样才能插入一个彩色文本以后到第三列? 我不想着色整行,只有第三列改变颜色。

提前致谢!

kampi

理查德·哈里森在使用NM_CUSTOMDRAW方面有正确的想法。

而不是重新实现所需的功能,但应考虑使用免费提供的CListView派生类型之一。

这是一个我认为可以满足你的需求的项目。

您可以使用CustomDraw处理程序执行此操作,请参阅: MSDN在Visual C ++中开发自定义绘图控件 。

基本上它很简单(和MSDN相当长),但归结为以下几点:

将其中的一个添加到通常的地方:

 ON_NOTIFY_REFLECT(NM_CUSTOMDRAW,OnCustomDraw)

然后将此方法添加到类中。

 void CMyListView :: OnCustomDraw(NMHDR * nmhdr,LRESULT * result)
 {
     LPNMLVCUSTOMDRAW vcd =(LPNMLVCUSTOMDRAW)nmhdr;

    开关(vcd-> nmcd.dwDrawStage)
     {
        案例CDDS_PREPAINT:
         {
             *结果= CDRF_NOTIFYITEMDRAW;
            打破;
         }

        案例CDDS_ITEMPREPAINT:
         {
             vcd-> clrText = RGB(255,0,255);  //改变第二行的颜色
             *结果= CDRF_NOTIFYSUBITEMDRAW;
            打破;
         }
        默认:
             *结果= 0;
            打破;
     }
    返回;
 }