文档章节

设置ListCtrl列表控件其中某一行的字体和背景颜色

雷霄骅
 雷霄骅
发布于 2014/08/16 13:52
字数 388
阅读 30
收藏 0

设置ListCtrl列表控件其中某一行的字体和背景颜色,可以最终达到如下效果:


操作步骤如下所示:

1.先添加一个自定义消息

ON_NOTIFY ( NM_CUSTOMDRAW,IDC_V_H264_NALLIST, OnCustomdrawMyList )


注:在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间。第二个参数是LIstCtrl的ID,第三个参数是消息响应函数。

2.下面是具体的函数。根据表格内容的不同,设置不同的背景颜色。

比如:“NAL负载类型”为SLICE的时候,背景为青色;为SPS的时候,背景为黄色;为PPS的时候,背景为咖啡色。

//ListCtrl加颜色
void CSpecialVH264Dlg::OnCustomdrawMyList ( NMHDR* pNMHDR, LRESULT* pResult )
{
	//This code based on Michael Dunn's excellent article on
	//list control custom draw at http://www.codeproject.com/listctrl/lvcustomdraw.asp


	NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );


	// Take the default processing unless we set this to something else below.
	*pResult = CDRF_DODEFAULT;


	// First thing - check the draw stage. If it's the control's prepaint
	// stage, then tell Windows we want messages for every item.
	if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage )
	{
		*pResult = CDRF_NOTIFYITEMDRAW;
	}
	else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage )
	{
		// This is the notification message for an item.  We'll request
		// notifications before each subitem's prepaint stage.


		*pResult = CDRF_NOTIFYSUBITEMDRAW;
	}
	else if ( (CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )
	{


		COLORREF clrNewTextColor, clrNewBkColor;


		int    nItem = static_cast<int>( pLVCD->nmcd.dwItemSpec );


		CString strTemp = m_vh264nallist.GetItemText(nItem,2);
		if(strcmp(strTemp,"SLICE")==0){
			clrNewTextColor = RGB(0,0,0);		//Set the text 
			clrNewBkColor = RGB(0,255,255);		//青色
		}
		else if(strcmp(strTemp,"SPS")==0){
			clrNewTextColor = RGB(0,0,0);		//text 
			clrNewBkColor = RGB(255,255,0);		//黄色
		}
		else if(strcmp(strTemp,"PPS")==0){
			clrNewTextColor = RGB(0,0,0);		//text
			clrNewBkColor = RGB(255,153,0);		//咖啡色
		}else if(strcmp(strTemp,"SEI")==0){
			clrNewTextColor = RGB(0,0,0);		//text
			clrNewBkColor = RGB(255,66,255);			//粉红色
		}else if(strcmp(strTemp,"IDR_SLICE")==0){
			clrNewTextColor = RGB(0,0,0);		//text
			clrNewBkColor = RGB(255,0,0);			//红色
		}else{
			clrNewTextColor = RGB(0,0,0);		//text
			clrNewBkColor = RGB(255,255,255);			//白色
		}


		pLVCD->clrText = clrNewTextColor;
		pLVCD->clrTextBk = clrNewBkColor;




		// Tell Windows to paint the control itself.
		*pResult = CDRF_DODEFAULT;




	}
}



本文转载自:http://blog.csdn.net/leixiaohua1020/article/details/12619341

共有 人打赏支持
雷霄骅
粉丝 203
博文 419
码字总数 2129
作品 4
朝阳
程序员
私信 提问
关于wxpython中listctrl的问题

目前我只知道listctrl只能改变其中某一行的背景色和字体颜色 但是我想改变其中一个格子里的字体颜色,或者一个格子里某些字的颜色, 怎么弄?

陈舵主
2012/08/20
878
0
MFC总结之CListCtrl用法及技巧(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zwgdft/article/details/7560592 本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时...

Mr-Bruce
2012/05/15
0
0
MFC中ListControl控件的使用

以下未经说明,listctrl默认view 风格为report 1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: ...

范大脚脚
2017/11/16
0
0
带你进入绚丽多彩的柿饼UI之动画、效果(三)

在开始今天的正文之前,先来看一段柿饼学习营学员完成的作业视频: 页面的动画效果 当要在设计器中携带一些动画效果时,本身还是会比较简单。例如,当从一个页面切换到另外一个页面时,新页面...

RTThread物联网操作系统
2018/09/27
0
0
VC控件ListCtrl的使用方法总汇

以下未经说明,listctrl默认view 风格为report ------------------------------------------------------------------------------- 1. CListCtrl 风格 LVSICON: 为每个item显示大图标 LVSS......

barsoom
2012/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx反向代理配置去除前缀

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:...

架构师springboot
22分钟前
1
0
QianBill API 开发笔记

JWT

BeanHo
34分钟前
3
0
Elasticsearch实战篇——Spring Boot整合ElasticSearch

当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来探讨Spring Boot整合ElasticSearch的问题。 本文主要讲以下内容: 第一部分,通...

JAVA_冯文议
43分钟前
3
0
不错的linux下通用的java程序启动脚本

#!/bin/sh#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用,#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7...

sprouting
今天
3
0
Linux manjaro系统安装后无法连接wifi,解决方案

笔记本为联想 thinkpad E480 首先通过命令lspci -k看一下原因是否为缺少wifi驱动,如下,如果没有Kernel driver in use,说明缺少驱动。 05:00.0 Network controller: Realtek Semiconducto...

bluecoffee
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部