定义宏

用listcontrol的SetItemData设置某一行的属性,通过自定义属性标识实现。

自定义某行内容颜色属性:

#define COLOR_DEFAULT 0 //默认颜色
#define COLOR_RED 1 //红色
#define COLOR_BLUE 2 //蓝色

定义消息

调用BOOL SetItemData(In int nItem, In DWORD_PTR dwData);

其中nItem为某行位置,下标以0开始,dwData可为自定义颜色属性。

然后在LISTControl控件中的NM_CUSTOMDRAW事件中处理。

void CListControlExampleDlg::OnNMCustomdrawList1(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTVCUSTOMDRAW pNMCD = reinterpret_cast<LPNMTVCUSTOMDRAW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
NMCUSTOMDRAW nmCustomDraw = pNMCD->nmcd;
switch(nmCustomDraw.dwDrawStage)
{
case CDDS_ITEMPREPAINT:
{
if (COLOR_BLUE == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(51, 153, 255);
pNMCD->clrText = RGB(255, 255, 255);
}
else if (COLOR_RED == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(255, 0, 0); //背景颜色
pNMCD->clrText = RGB(255, 255, 255); //文字颜色
}
else if (COLOR_DEFAULT == nmCustomDraw.lItemlParam)
{
pNMCD->clrTextBk = RGB(255, 255, 255);
pNMCD->clrText = RGB(0, 0, 0);
}
else
{
//
}
break;
}
default:
{
break;
}
} *pResult = 0;
*pResult |= CDRF_NOTIFYPOSTPAINT; //必须有,不然就没有效果
*pResult |= CDRF_NOTIFYITEMDRAW; //必须有,不然就没有效果
return;
}

调用方法

void CListControlExampleDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_lstControl.SetItemData(0, COLOR_BLUE);
m_lstControl.SetItemData(1, COLOR_DEFAULT); return;
} void CListControlExampleDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
m_lstControl.SetItemData(0, COLOR_DEFAULT);
m_lstControl.SetItemData(1, COLOR_RED); return;
}

参考

mfc中设置listcontrol某一行的背景和文字颜色

https://blog.csdn.net/langxm2006/article/details/76736153/

设置LISTControl控件某一行的背景和文字颜色的更多相关文章

  1. 设置EditText控件中提示消息hint的字体颜色和大小

    设置EditText控件中提示消息hint的字体颜色和大小 1.设置字体大小 代码例: public void init(){ hint= (EditText) findViewById(R.id.i ...

  2. 增加duilib edit控件的提示功能和多种文字颜色

    转载请说明原出处,谢谢~~:http://blog.csdn.net/zhuhongshu/article/details/41786407 duilib的CEditUI控件内部使用了win32的原生 ...

  3. 扩展duilib edit控件的提示功能和多种文字颜色(解决edit为password显示不正常的bug)

    参考博客:Redrain 转载:http://blog.csdn.net/zhuhongshu/article/details/41786407 在Redrain博客的基础上做了修改 1.CEditU ...

  4. 如何设置TextView控件的背景透明度和字体透明度

    如何设置TextView控件的背景透明度和字体透明度 设计师给的标注都是类似这样的: 字号:26 颜色:#000000 透明度:80% 其实,程序上只要需要一个色值就OK了,那么这个色值我如何计算呢? ...

  5. VS2010,MFC动态按钮和窗体背景图片,以及是静态文字控件透明,并避免静态文字刷新出现的重叠问题

    1.动态按钮的四种动作 1)正常 2)按下 3)滑过 4)失效 在MFC中,4个动作对应着四种位图bmp, 首先,将代表四种状态的位图加载入资源中,将对应的按钮设置为BitmapButton 第二,在 ...

  6. 样式:让div里的两个控件在一行的操作

    table的td里如果放一个text,希望在右侧再放一个按钮,让这两个控件在一行,但是放了之后总是底部不能对齐,这样的话,加上下边这句样式就可以了 position:relative; top:17p ...

  7. easyui表单多重验证,动态设置easyui控件

    要实现的功能:在做添加学生信息的时候,利用easyui的验证功能判断 学号是否重复和学号只能为数字 最终效果如下图: 但在做这个的过程中,遇到了一系列的问题: 扩展validatebox的验证方法,最 ...

  8. WinForm 批量设置指定控件中的控件状态

    在开发中常遇到当点击某个按钮的时候,禁用文本框或按钮的的状态,以防止误操作,下面的代码是我已批量设置指定控件中的按钮状态的代码,同理可以延伸出很多操作. /// <summary> /// ...

  9. WPF后台设置xaml控件的样式System.Windows.Style

    WPF后台设置xaml控件的样式System.Windows.Style 摘-自 :感谢 作者: IT小兵   http://3w.suchso.com/projecteac-tual/wpf-zhi ...

随机推荐

  1. SpringCloud之注册中心Eureka搭建

    POM: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  2. java基本类型及其相互转换

    1.基本数据类型 java中是采用Unicode编码的,其一个字符占用两个字节,故java中字符char可以存储一个中文汉字 整数默认是int类型,浮点数默认是double类型 在定义long类型的变 ...

  3. Spring JPA学习笔记

    目录 什么是JPA? 引入配置 新建一个Entity Bean类 JPA的增删改查 新建操作接口 新建测试类 总结 什么是JPA? 什么是JDBC知道吧?数据库有Mysql,SQL Server,Or ...

  4. springMVC的全局异常设置

    先说为什么要设置全局异常.比如说,你程序出错了,500错误,大家都知道,程序出错就不会往下面执行,但是客户端那边还是一直等待状态,所以,我们后台无论正常还是报错都要给客户端返回数据.当然,我们可以tr ...

  5. UDP中的sendto 与recvfrom

    sendto 头文件: #include <sys/types.h>   #include <sys/socket.h> 定义函数: int sendto(int s, con ...

  6. Golang入门教程(十二)安装注意事项

    1.$GOPATH (1)go 命令依赖一个重要的环境变量:$GOPATH .注:这个不是Go安装目录 (2) (3) (4)git 安装 (5)包管理对应关系 (6)安装完之后bee 工具后,bee ...

  7. silverlight用Encoding.UTF8读取shape文件的中文属性值 出现乱码

    最近用Silverlight读取shape文件,读出的属性居然是乱码. 原因是:Silverlight不支持GB2312. 解决方案: 下载该地址的代码http://encoding4silverli ...

  8. vertica系列:数据的导入导出

    本文仅涉及 Vertica 导入导出本地文件, 以及两个 Vertica 集群相互导出, 不涉及 Vertica 和 hdfs/Hive 导入导出和互操作. copy 数据导入工具 copy 命令无疑 ...

  9. UTF8 UTF16 之间的互相转换

    首先需要知道 Unicode 编码范围 [U+00, U+10FFFF], 其中 [U+00, U+FFFF] 称为基础平面(BMP), 这其中的字符最为常用. 当然, 这 65536 个字符是远远不 ...

  10. jquery判断对象是否存在

    if($("#abc").length >0) { ... } if($("#abc").html() != "") { ... }