想要实现的效果是这样的,并不是改变 CListCtrl 的整行的文字颜色,而是想实现这样的效果,比如说在数据库查找数据,找到匹配的,比如输入 "C" ,那么 "Visual C++" 自然是匹配的,我的意思是把 匹配的字颜色动态改变一下,以反应匹配了哪个关键字,而其他的不变,就这个意思,大家有什么好的看法和建议?

解决方案 »

  1.   

    真的只能自绘了,你可以上网找找,clistctrl的代码,可能有帮助
      

  2.   


    这个是肯定的,问题是 custom draw或者owner draw 不会是要先输出一部分文字,再输出有颜色的文字,再输出另外的文字吧?
      

  3.   

    奇怪,怎么最近老有人问同样的问题呢?再给你写一遍。ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)void CXXX::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
    {
        LPNMLVCUSTOMDRAW pNMLvCustomDraw = reinterpret_cast<LPNMLVCUSTOMDRAW>(pNMHDR);
        *pResult = CDRF_DODEFAULT;    if (pNMLvCustomDraw->nmcd.dwItemSpec == 你的行 && pNMLvCustomDraw->iSubItem == 你的列)
        {
            pNMLvCustomDraw->clrText = 文字颜色;
            pNMLvCustomDraw->clrTextBk = 背景颜色;
        }
    }
      

  4.   


    楼上误解我的意思了,我的意思不是指定的行列文字颜色的改变,而是这样的,比如这 SubItem 的文字是 "Visual C++",我想要实现的是比如说只让 "C++" 这个词改变颜色,而别的不变,你这样的话整个 SubItem 的颜色都变了?