MFC之自定义CListCtrl单元格颜色与字体颜色

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

MFC之自定义CListCtrl单元格颜色与字体颜色

在使用MFC时,常常会用到CListCtrl控件,有时候还会需要它能在不同的情况下,字体颜色和背景颜色会发生变化,但是CListCtrl并不支持,这个时候我们就需要自己写一个CListCtrl类去实现额外的功能了。

创建CListCtrlP类

首先我们需要添加一个类让它去继承CListCtrl类,然后将我们需要实现的功能添加进这个新的类中。

//字体颜色结构体
struct ItemColor
{
   
   
    int m_iRow;
    int m_iCol;
    COLORREF m_TextColor;
};
class CListCtrlP :public CListCtrl
{
   
   
public:
    CListCtrlP();
    ~CListCtrlP();
protected:
    DECLARE_MESSAGE_MAP()
public:
	//重新绘制的方法
    afx_msg void OnNMCustomdraw(NMHDR *pNMHDR,LRESULT *pResult);
    //设置颜色
    void SetColor(int iRow, int iCol, COLORREF color);
新学期领福利!购实物周边送年卡会员! T恤、键盘、双肩包等周边任选!还能解锁资源下载、VIP文章等多重会员权益! 阅读详情

相关推荐

MFCCListCtrl 如何设置单元格颜色

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

橘嘉禾 1307

【最新】MFC, CListCtrl 自定义字体颜色和背景

【最新】MFC, CListCtrl、CHeaderCtrl , 设置CListCtrl, 每一部分的字体颜色和背景

CListCtrl实现改变单元格颜色

1、对话框添加NM_CUSTOMDRAW消息 ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, &CCheckDlg::OnNMCustomdrawList1)

好学近乎知,知耻近乎勇 5604

C++重绘button按钮控件,支持设置背景色,边框色,扁平化

C++重绘button按钮控件,支持设置背景色,边框色,扁平化 C++重绘button按钮控件,支持设置背景色,边框色,扁平化

mfc单元格坐标_MFC CListCtrl改变表头/单元格/字体的背景颜色及高度

就是自己创建ListCtrl和HeaderCtrl的子类.代码如下:HeaderCtrlCl.cppint m_R;int m_G;int m_B;int m_Gradient; // 画立体背景,渐变系数float m_Height; //表头高度,这是倍数,int m_fontHeight; //字体高度int m_fontWith;//字体宽度COLORREF m_color;void C...

weixin_39970689的博客 1532

mfc 列表框行颜色设置方法

指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加入的行,方便操作可查看,也可以让添加和修改的记录显示不一样的颜色,方便的多了,VC自带的没有这种功能。 虽然说自带没有这个功能,但可以用NU_CUSTOMDRAW 我的环境是vc2010, 听说vc6 没有,需要手动添加。 新建一个mfc 对话框工程,并添加列表框控件,添加一些数据...

曾立文的博客 3284

改变 CListCtrl、CHeaderCtrl 高度、字体颜色和背景

摘要   用CListCtrl来显示数据比较方便,有时候我们需要标注某一列或某一个单元格的背景和字体颜色,或者需要改变一下行高和字体大小,CListCtrl要改变这些并不是很方便。本文将介绍如何派生一个类来改变CListCtrl及其表头的高度、字体大小、列背景颜色单元格背景颜色、列字体颜色单元格字体颜色。 关键字: 自绘 子类化 颜色 CListCtrl CHeaderCtrl 

guomeiran的专栏 2277

设置CListCtrl单元格颜色

pragma once// CListCtrlClclass CListCtrlCl : public CListCtrl { DECLARE_DYNAMIC(CListCtrlCl)public: CListCtrlCl(); virtual ~CListCtrlCl();protected: DECLARE_MESSAGE_MAP() virtual vo

liuhaz的博客 7105

MFC表格控件CListCtrl的改造及用法

MFC表格控件CListCtrl的改造及用法

欧特GO 1986

MFC-CListCtrl重绘,添加按钮到单元格

MFC Listctrl 不支持单元格颜色设置,以及单击其中某一单元格时高亮显示,要想达成自己的目的,就只能对其重绘。 关于单元格中按钮的添加,说一下思路,首先要重写CButton类,将其单击事件接口进行重写,这里就是发送自定义消息,到主窗口界面进行响应,然后在要生添加按钮的单元格中生成新的按钮,加入链表中进行存放,同时记录对应的单元格的行列信息,然后在单元格进行重绘时,改变button 位置即...

若歌的博客 4487

MFC CListCtrl 设置每行颜色、每列颜色 或者单独项颜色

vs2013工程实例,演示内容:为CListCtrl控件 的子项的字体或者背景,设置一种或者多种颜色 每行 每列 或单独元素(需要稍微改下代码)都可以设置任意颜色

MFC自绘CListCtrl、CHeaderCtrl

以下是网上流传自绘CListCtrl控件的方法:不过有几个问题需要注意一下: 以下功能在静态创建时没有问题,动态创建是会出现两个问题: 一.控件的表没有自动重绘,没有实现换肤。 在CListCtrlCL类中设置断点,进入不了CListCtrlCl::DrawItem(),原因是在动态创建是没有LVS_OWNERDRAWFIXED风格。      解决办法:   m_list->Cre...

mikasoi的博客 3605

MFC绘制CListCtrl单元格颜色+重绘窗体背景+电脑桌面绘制图片等

MFC绘制CListCtrl单元格颜色+重绘窗体背景+电脑桌面绘制图片等

qq_19667153的博客 3630

改变 自绘 CListCtrl、CHeaderCtrl 高度、字体颜色和背景及其动态创建中的问题

以下是网上流传自绘CListCtrl控件的方法:不过有几个问题需要注意一下: 以下功能在静态创建时没有问题,动态创建是会出现两个问题 一.控件的表没有自动重绘,没有实现换肤。在CListCtrlCL类中设置断点,进入不了CListCtrlCl::DrawItem(),原因是在动态创建是没有LVS_OWNERDRAWFIXED风格。      解决办法:   m_list->Cre

曲终人散 7874

CListCtrl扩展类自定义样式实战:字体颜色、行列背景色行高调整

MFC框架下,CListCtrl控件虽然提供了基本的文本展示功能,但其默认绘制行为对视觉表现力支持有限。特别是在需要根据业务逻辑动态调整列表项文本颜色(如错误状态标红、高优先级显示为蓝色)时,开发者必须介入底层绘制流程。本章深入探讨如何通过结合通知机制设备上下文(Device Context, DC)操作,在不破坏原有交互体验的前提下,精准控制每一项乃至每一个子项的字体颜色。重点分析CDC。

weixin_42230607的博客 1235

提升MFC界面视觉效果:CListCtrl颜色设置示例

提升MFC界面视觉效果:CListCtrl颜色设置示例 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代软件开发中,用户界面的美观性和易用性是吸引用户的重要因素之一。MFC(Microsoft Foundation Class)作为Windows平台上广泛使用的C++类库,提供了丰富的控件和功能来构建桌面应用程序。然而,MFC自带的控件在默认情况下可能无法满足所有...

gitblog_09746的博客 1164
上一篇: C++ ini文件操作
下一篇: MFC之两个CListCtrl控件滚动条同步
weixin_44055512
博客等级 码龄8年 3粉丝 4原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值