【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.单元格合并 ...
随机推荐
- 在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法——AssemblyMetadataAttribute
在PowerShell脚本中获取程序集文件属性的指定元数据特性的方法--AssemblyMetadataAttribute <# .SYNOPSIS 获取程序集文件属性的指定元数据特性 .DES ...
- python类的赋值操作和浅拷贝
变量的赋值 只是形成了两个变量,但是还是指向同一个对象,我们来看看代码 class SWS: pass class SSN: pass class C: def __init__(self, sws, ...
- Python 实现Word转HTML
将Word转换为HTML能将文档内容发布在网页上,这样,用户就可以通过浏览器直接查看或阅读文档而无需安装特定的软件.Word转HTML对于在线发布信息.创建在线文档库以及构建交互式网页应用程序都非常有 ...
- [复习随笔]python_dcgan网络复习小知识:模型定义
定义参数 dataroot - the path to the root of the dataset folder. We will talk more about the dataset in t ...
- python操作mongodb基本使用
使用pymongo,具体可以参考官方文档: 语法上基本和原生mongodb是一样的,所以非常容易入手... https://pymongo.readthedocs.io/en/stable/tutor ...
- vulnhub - tornado - wp
coverY: 0 tornado 信息收集 目标开放了80,22端口. 访问80网页,是默认页面: 目录枚举 用dirsearch没有什么发现,换gobuster发现了一个bluesky目录.访问如 ...
- Python——第三章:函数的定义
函数的定义: 对某一个特定的功能或者代码块进行封装. 在需要使用该功能的时候直接调用即可 格式: def 函数的名字(): 被封装的功能或者代码块->函数体 调用: 函数的名字() 使用函数的好 ...
- Havoc插件编写
配置文件的webhook支持discord,所以尝试使用钉钉和企业微信. WebHook { Discord { Url = "" AvatarUrl = "&quo ...
- ElasticSearch-1
原文链接:https://gaoyubo.cn/blogs/52ef5bf7.html 一.Elasticsearch 架构设计 Elasticsearch 架构层: Elasticsearch 五层 ...
- 2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地。 请你找出一个海洋单元格,这个海洋单元格
2023-05-13:你现在手里有一份大小为 n x n 的 网格 grid, 上面的每个 单元格 都用 0 和 1 标记好了其中 0 代表海洋,1 代表陆地. 请你找出一个海洋单元格,这个海洋单元格 ...