收录日期:2020/11/30 16:01:51 时间:2016/07/06 09:03:14 标签:基础类
我对clistCtrl进行行修改,修改以后我想把行的背景色换掉,以示区别~请问这个怎么做
m_List.SetBkColor(RGB(255,   255,0));仅仅是修改整个背景。
没有现成的函数调用~谁写过的,讲讲方法或者代码贴一下,谢谢~~
http://vckbase.com/document/viewdoc/?id=1480
重载
具体该怎么样写代码哦?代码写到什么函数里面~~具体指教一下,~
我前两天查了好多资料,正好给你。 也可以重载DrawItem,但是比较麻烦,要自己绘

void C_CodeList::OnCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: Add your control notification handler code here
LPNMLVCUSTOMDRAW pnmCustDraw   =   (LPNMLVCUSTOMDRAW)pNMHDR; 

TRACEINFO(L"OnNMCustomdrawList1");
switch(pnmCustDraw->nmcd.dwDrawStage)
{  
case   CDDS_PREPAINT:  
*pResult = CDRF_NOTIFYITEMDRAW ;
break; 

case CDDS_ITEMPREPAINT:
{
COLORREF clrCodeInvalidColor;
clrCodeInvalidColor = RGB(0xff, 0x00, 0x00);

pnmCustDraw->clrTextBk = clrCodeInvalidColor;

}
break;
}
case CDDS_SUBITEM:
{
break;
}

case   CDDS_ITEMPOSTPAINT:
{  

*pResult   =   CDRF_DODEFAULT;  
break;  
}  
default:  
*pResult   =   CDRF_DODEFAULT;  
break;  
}   
return ;
}
下面是别人的代码  希望对你有帮助

响应NM_CUSTOMDRAW进行重绘。。下面的代码演示了让ListCtrl隔行颜色不同的效果:

ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)

void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
    LPNMLVCUSTOMDRAW  lplvcd = (LPNMLVCUSTOMDRAW)pNMHDR;
    *pResult = 0;

    switch(lplvcd->nmcd.dwDrawStage)
    {   
        case CDDS_PREPAINT :
            *pResult = CDRF_NOTIFYITEMDRAW;
            break;
        case CDDS_ITEMPREPAINT:
            *pResult =  CDRF_NOTIFYSUBITEMDRAW;
            break;
        case CDDS_SUBITEM | CDDS_ITEMPREPAINT:
            if(lplvcd->nmcd.dwItemSpec % 2)
            {
                lplvcd->clrTextBk = RGB(255,255,200);
            }
            else
            {
                lplvcd->clrTextBk = RGB(255,255,255);
            }
            *pResult = CDRF_NEWFONT;
            break;
    }
}
对于以上代码,都可以,我想在运行的过程中修改,比如,我有个按钮,按下去就可以改变指定行的颜色,这样可以吗
应该可以啊。获取你所选中的行的索引值。m_list.GetCurSel(),然后将楼上说的方法写成函数ChangeItemColor(int nSelect),就可以啊
加载的时候就调用了OnCustomDraw,而且还有NMHDR* pNMHDR, LRESULT* pResult这些参数,我点了以后哪去这些参数值啊

PID+\"=0\"别沉了 关于return返回 Access如何将窗体中的计算结果值写入表中 请教ServerVariables(\"REMOTE_ADDR\")问题 一个作用域 application的问题 ! 请问这个是什么意思?[XmlElement]? 寻找传说中的高手解决这个问题 C++写的动态库中的结构在C#中怎么声明(2) pb调用存储过程TimeStamp 用什么参数 请(无枪狙击手)(老龟) 求教一个问题,谢谢。 继承的自定控件无法激发事件 【请教一个语法问题】不知道这个问题该怎么描述 如何添加自己的驱动? 如何用VB制作一个论坛自动回帖器? 我在1024*768分辨下做的ASPX页,但是在别人的1280*1024液晶显示器上,原来的页面布局变了,这个怎么处理.后有说明..... 【求助】网页上有一个表格内容,提供一个给客户下载此表格的功能 一高等数学题目求解 超级高手请进,小弟很头疼,非常困惑。希望能有高手给一个比较好的分析。 pb调用存储过程TimeStamp 用什么参数 请教: 标准的H264码流,想用AVI容器保存成文件,该文件可以被第3方播放器播放,并支持进度控制,该如何实现,或那里有这方面的资料 如何读取网络中TXT或者INI文件中的信息 请问大家在sql2000中怎样把下面语句的if else改成case 语句? Turbolinux招聘Linux研发 关于fc8 的 /proc/cpuinfo 问题? 通过ENTER键,使焦点到datagridview的下一个单元格中? 如何获取IE发出的HTTP请求 一个系统报错,看不懂什么意思! 问大家一个treeview显示的问题 爱因斯坦谜题 DATAGRIDVIEW里面能自动在某一列的数据后面都加上单位吗?比如“个”,“只”之类的