【MFC】CListCtrl 如何设置单元格颜色?
CListCtrl默认可设置的内容很少,如单元格颜色默认无法设置。若想设置单元格颜色,需要对CListCtrl进行拓展,已有老外为我们写好demo,这里对其中原理、设置方法进行一个解析。
其原理是:设置CListCtrl控件的OwerDraw属性为true,然后使用GDI画图函数进行各种自定义绘制。

拓展的类为CColorListCtrl,必需引入的代码:ColorListCtrl.zip(4个文件)
将源码引入工程,#include "ColorListCtrl.h",将CListCtrl换成CColorListCtrl,构造函数中指定CColorListCtrl对象的列数(这里假定CListCtrl你已经会用了)。
部分代码如下:
//设置列是否有竖线隔开
m_ColListCtrl.SetColumnType(FALSE);
//设置选中行是否是实线边框
m_ColListCtrl.SetFocusType(FALSE);
//设置表头
CStringArray Head;
CByteArray Cols;
Head.Add("Item");
Cols.Add(40); //40%
Head.Add("Sub1");
Cols.Add(30); //70%
Head.Add("Sub2");
Cols.Add(30); //100%
m_ColListCtrl.InitCtrl(&Head, &Cols);
//添加数据
CString Linetitle;
int pos=0;
for (int x=0; x<10;x++)
{
Head.RemoveAll();
Linetitle.Format("Line %d",x);
Head.Add(Linetitle);
Linetitle.Format("SubLine %d-1",x);
Head.Add(Linetitle);
Linetitle.Format("SubLine %d-2",x);
Head.Add(Linetitle);
pos=m_ColListCtrl.AddItem(&Head);
if (pos!=LISTCTRL_ERROR) ;
}
//设置背景色、前景色
m_ColListCtrl.SetItemBackgndColor(ITEM_COLOR(BackColIndex), int (m_IntItemPos), int (m_IntItemSubPos) );
m_ColListCtrl.SetItemTextColor(ITEM_COLOR(TextColIndex), int (m_IntItemPos), int (m_IntItemSubPos) );
//设置焦点、选择状态
m_ColListCtrl.SetItemState( int(m_IntItemStatePos), LVIS_SELECTED , LVIS_SELECTED|LVS_EX_FULLROWSELECT);
m_ColListCtrl.SetItemState( int(m_IntItemStatePos), LVIS_FOCUSED , LVIS_FOCUSED|LVS_EX_FULLROWSELECT);
最后附上整个源demo工程的源码:coloredlistctrl.zip
效果截图:

【MFC】CListCtrl 如何设置单元格颜色?的更多相关文章
- unidbgrid 设置 单元格颜色
unidbgrid 设置 单元格颜色 2018年10月24日 11:32:41 ozhy111 阅读数:68 procedure TF_Resource2.UniDBGrid1DrawColumn ...
- 【手记】解决excel无法设置单元格颜色且界面怪异+桌面图标文字老有色块等问题
注:问题是在XP上遇到的,不知道是否适用其它系统 问题现象 excel 2010成这样了: 关键是设置不了单元格颜色,无论是文字颜色还是背景色都设置不了,设了没变化.同时会发现桌面图标的文字总有底色: ...
- openpyxl 设置单元格颜色
在处理excel数据格式的时候,需要对特定单元格进行颜色标注,方便相关人员查看 醒目 # -*- coding: utf-8 -*- from openpyxl import load_workboo ...
- Excel公式设置单元格颜色
Excel2010 “条件格式"-"新建规则"-"使用公式确定要设置格式的单元格" 公式如下: =OR(H2<=-20%,H2>=20%, ...
- ExtJS6 根据Value设置单元格颜色
renderer : function(value, meta) { if(parseInt(value) > 0) { meta.style = ""; } else { ...
- unigui 设置单元格颜色
procedure TF_Resource2.UniDBGrid1DrawColumnCell(Sender: TObject; ACol, ARow: Integer; Column: TUniD ...
- ABAP 设置单元格颜色
http://blog.163.com/ronanchen@126/blog/static/172254750201161811040488/ http://blog.csdn.net/lhx20/a ...
- ALV列、行、单元格颜色设置
)颜色含义 :海蓝:2:浅清:3:黄色:4:浅蓝:5:青色:6:红色:7:橙色. (1)首位为主颜色: (2)次位为辅助颜色: (3)末位为0时,表示首位数字表为表格的底色: 末位为1时,则表示以1为 ...
- VBA_Excel_教程:单元格颜色
Sub SetCellColor() '设置单元格颜色 Sheet1.Cells(, ).Interior.ColorIndex = End Sub
- NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)
NPIO源码地址:https://github.com/tonyqus/npoi NPIO使用参考:源码中的 NPOITest项目 下面代码包括: 1.包含多个Sheet的Excel 2.单元格合并 ...
随机推荐
- python函数str()避免类型错误
python中当输出需要拼接字符串(char)和整数(int)时,需要用到str()函数 如果编写如下代码: age = 23 print("Happy " + age +&quo ...
- FC 交换机基础配置
目录 Primera600 存储服务器 FC 交换机 交换机信息查看 交换机配置管理 用户管理 以太网配置 端口配置管理 别名配置 证书管理 角色管理 Zone 管理 参考网址 Primera600 ...
- 【源码系列#02】Vue3响应式原理(Effect)
专栏分享:vue2源码专栏,vue3源码专栏,vue router源码专栏,玩具项目专栏,硬核推荐 欢迎各位ITer关注点赞收藏 Vue3中响应数据核心是 reactive , reactive 的实 ...
- 数据集成平台关于【源平台调度&任务生命周期】
任务调度者 调度事件 生产任务 调度任务池-异步 AsynDispatcher --source 实例化适配器执行 消费任务 实例化集成应用 DataHub Instance handleSource ...
- IDEA提示java_ 程序包org.apache.ibatis.session不存在
一.解决方案 1.问题原因: 这是因为配置Java的程序包这块出现了错误,同时可能你还没有设置让IDEA自动加载Jar包,才会报出这种错误的. 2.解决方案: 解决方式如下: File->Set ...
- [scrapy]一个简单的scrapy爬虫demo
一个简单的scrapy爬虫demo 爬取豆瓣top250的电影名称+电影口号 使用到持久化流程: 爬虫文件爬取到数据后,需要将数据封装到items对象中. 使用yield关键字将items对象提交给p ...
- [NOI online2022普及A] 王国比赛
题目描述 智慧之王 Kri 统治着一座王国. 这天 Kri 决定举行一场比赛,来检验自己大臣的智慧. 比赛由 \(n\) 道判断题组成,有 \(m\) 位大臣参加.现在你已经知道了所有大臣的答题情况, ...
- TCP连接断开:为什么要挥手四次
本文分享自华为云社区<解密TCP连接断开:四次挥手的奥秘和数据传输的安全>,作者: 努力的小雨 . TCP 连接断开 在当今数字化时代,互联网已经成为了人们生活中不可或缺的一部分.而在互联 ...
- Cisco 交换机利用CDP数据自动绘制网络拓扑图[drawio]-实践
进行网络运维,必须对网络拓扑情况进行详细的掌握,但是网络改动后,更新网络拓扑比较繁琐,维护人员容易懈怠,久而久之,通过人工绘制的网络拓扑很容易与现有网络出现偏差. 现在,可以通过python 丰富的库 ...
- 华企盾DSC防泄密申请解密、外发等失败常见处理方法
1.检查文件是否已经打开或被占用,以及文件的权限不是只读(错误代码32或5,这种情况比较常见) 2.系统用户名不能带特殊字符.老版本文件路径中不能含特殊字符(包括备份路径) 3.备份路径是否有读写权限 ...