CMFCListCtrl控件使用

Visual C++ MFC实现Outlook风格界面与COM邮件集成 界面编程是企业级应用开发中的重要环节,Outlook经典的三段式布局——导航栏、列表视图与预览窗格,为多文件夹、多类型内容的管理提供了高效的信息架构。在Visual C++环境中,借助MFC的CMFCOutlookBar、CMFCListCtrl等现代控件,可以快速复刻这一交互模型,并构建出符合工程实践的消息路由与视图刷新机制。同时,通过COM接口调用Outlook类型库,开发者能够实现收件箱遍历、邮件读取与自动发送等自动化功能,将邮件能力无缝整合到自有程序中。该技术方案适用于办公自动化、CRM客户端及内部 阅读详情

CMFCListCtrl是MS从CListCtrl派生出来的新类,灵活性上有所进步,特别是改变行列颜色、改变字体,不用像CListCtrl很多步骤,要处理很复杂的数据结构。现在记录下,先看效果图

  1. 用类向导从CMFCListCtrl派生出CMyListCtrl类;
  2. 声明虚函数
    virtual COLORREF OnGetCellTextColor(int nRow, int nColum);
    	virtual COLORREF OnGetCellBkColor(int nRow, int nColum);
    	virtual HFONT OnGetCellFont(int nRow, int nColum, DWORD dwData = 0);

  3. 实现函数里写
    COLORREF CMyListCtrl::OnGetCellTextColor(int nRow, int nColum)
    {
    
    	return(nRow % 2) == 0 ? RGB(128, 37, 0) : RGB(0, 0, 0);
    }
    
    COLORREF CMyListCtrl::OnGetCellBkColor(int nRow, int nColum)
    {
    
    	return(nRow % 2) == 0 ? RGB(253, 241, 249) : RGB(196, 238, 254);
    }
    
    HFONT CMyListCtrl::OnGetCellFont(int nRow, int nColum, DWORD /*dwData* = 0*/)
    {
    
    	return afxGlobalData.fontDefaultGUIBold;
    	
    }

  4. 标题栏也是可以改变的,改变了字体
    m_font.CreateFont(20,0,0,0,FW_DONTCARE,FALSE,FALSE,0, 1,  
    		OUT_DEFAULT_PRECIS,   
    		CLIP_DEFAULT_PRECIS,  
    		DEFAULT_QUALITY,   
    		DEFAULT_PITCH|FF_SWISS,  
    		_T("宋体")); 
    	m_wndListCtrl.GetHeaderCtrl().SetFont(&m_font);
    	


=====================================================================

2015.1.23今天找到了一个设置行高的投机取巧方法

添加一个方法

void CMyListCtrl::SetRowHeight(int nHeight)
{
	CImageList im;
	im.Create(1, nHeight, ILC_COLOR4, 10, 10);
	SetImageList(&im, LVSIL_SMALL ); 

}
注意这里虚拟插入的icon的宽度为1,高度为需要设定的行高,运行之后效果如下


==================================

2015.7.20

新增加一个自动调整最后一列列宽的方法供调用,需要添加完表头后显式调用

void CMyListCtrl::AutoColumn(void)//自动调节最后一列
{
	CRect xRect;
	int nLastColumnWidth = 0;
	int nColumnNum = 0;

	GetClientRect(&xRect);//OleControl的
	nLastColumnWidth = xRect.Width();
	nColumnNum = GetHeaderCtrl().GetItemCount();

	for (int i = 0; i < nColumnNum - 1; i++)
		nLastColumnWidth = nLastColumnWidth - GetColumnWidth(i);
	SetColumnWidth(nColumnNum - 1, nLastColumnWidth);
}


自绘CMFCListCtrl,改变行高,行的背景颜色 可根据自己需要改变行高和背景颜色,开发工具为VS2013 立即下载

相关推荐

CMFCListCtrl的改造版,可以自行设定每行宽度,改变行的背景颜色

继承自CMFCListCtrl(CListCtrl的新版本),可用VS2013、2015及2017编译。

VS2010中新控件的编程------CMFCListCtrl列表控件的应用

CMFCListCtrl列表控件的应用    首先建立以CMFCListCtrl为基类的CMyListCtrl,并重载OnGetCellTextColor以便设置文本颜色,重载OnGetCellBkColor以便设置背景颜色,重载OnGetCellFont以便设置字体,重载OnCompareItems以便按照一定规则排序。重载的关键函数如下: COLORREF CMyListCtrl::OnG

mr_liyonghong的专栏 8298

实现CTreeCtrl 多行选择,单行高亮显示

MFC 中 CListCtrl 已经有 集成类 CMFCListCtrl,实现 单行高亮,多行选择。但是 CTreeCtrl 却没有,纵观网络 也没有完整的实现,今天 贡献给大家

36 张图梳理 Intellij IDEA 常用设置

点击上方“阿拉奇学Java”,选择“置顶或者星标”每天早晨00点00分,与你相约!往日回顾:公司接口裸奔10年了,有必要用API接口签名验证吗? 显示工具条(1)效果图(2)设置方法标注...

qq_36189144的博客 379

CListCtrl控件中的第一列添加图片

在CListCtrl控件中的第一列添加图片

GNSS差分码偏差(DCB)从原理到实战:如何避免数据处理中的常见错误

本文深入解析GNSS差分码偏差(DCB)的原理及其对高精度定位的关键影响。针对数据处理中因忽略DCB校正导致的常见错误,如单系统PPP高程偏差、多系统融合精度下降及电离层研究失真等,提供了实战解决方案与主流DCB产品获取、集成方法,帮助用户有效规避陷阱,提升数据处理精度。

k5l6m的博客 224

使用CMFCListCtrl控件时的排序方法

项目开发工具为VS2010,对于用惯了VC6的我来说,有些新特性摸起来真有些费神。这两天为了一个数据显示列表弄得云里雾里的。 背景是这样的: 1、要在界面中显示数据库中数据(表格形式),每列要有标题名。 2、数据库中的一个字段可能要拆分称两列进行显示。 3、显示的数据要能任意列进行排序,每列的数据可能有重复值。 因此,我使用了“列表”控件。后来听说VS2010中有个CMFCListCtr

冰冻三尺,非一日之寒! 1764

稀疏变分高斯过程【超简单,全流程解析,案例应用,简单代码】

稀疏变分高斯过程(Sparse Variational Gaussian Processes, SVGP)是一种高效的高斯过程(GP)近似方法,它使用一组称为引入点的固定数据点来近似整个数据集。这种方法大大减少了高斯过程模型的计算复杂度,使其能够适用于大数据集。下面是SVGP的详细数学过程。在标准高斯过程中,给定数据集xiyii1N{(xi​yi​i1N​,目标是学习一个映射fff,其中f∼GPmkf∼GPmkmmm是均值函数,kkk。

刘文凯的博客 3658

CMFCListCtrl控件排序(转)

项目开发工具为VS2010,对于用惯了VC6的我来说,有些新特性摸起来真有些费神。这两天为了一个数据显示列表弄得云里雾里的。 背景是这样的: 1、要在界面中显示数据库中数据(表格形式),每列要有标题名。 2、数据库中的一个字段可能要拆分称两列进行显示。 3、显示的数据要能任意列进行排序,每列的数据可能有重复值。 因此,我使用了“列表”控件。后来听说VS2010中有个CMFCListCtr...

weixin_34292959的博客 537

Unity FPS射击控制系统:数据驱动的武器行为解耦方案

在Unity第一人称射击(FPS)开发中,射击系统常因输入、状态、行为耦合导致连发异常、换弹冲突与网络同步失准。其本质是缺乏对‘武器行为’(如后坐力曲线、弹药逻辑)与‘射击控制’(如输入合法性校验、冷却调度)的正交分离。本方案基于ScriptableObject实现WeaponData数据资产化,配合ShootingController状态机服务,达成输入解耦、运行时参数可调、协程受控、网络预测友好等工程目标。适用于中大型FPS项目架构升级与数据驱动转型,尤其解决Unity InputSystem与物理反馈

weixin_30536861的博客 609

中国1990-2021连续30年土地利用CLCD数据分享

CLCD(China Land Cover Dataset)数据集是由武汉大学黄昕老师基于Google Earth Engine上的335,709景Landsat数据制作的中国年度土地覆盖数据集。为了提高CLCD的时空一致性,还提出了一种包含时空滤波和逻辑推理的后处理方法。该数据集最大的优势在于每年30米的土地利用分类结果,且连续覆盖了30年时间。相比其他产品如GLC_FCS30、Global30、AGLC2000_2015、FROM-GLC10、ESA10、ESRI10等,CLCD在时间分辨率上更高。

qq_48539301的博客 1万+

cmfclistctrl设置单行文字颜色_实战PyQt5: 007-单行编辑控件QLineEdit

QLineEdit 简介QLineEdit是一个单行文本输入控件,可输入单行的文本字符串,这里输入常见的情况有普通文本,比如用户登录名,文件保存路径等;数字,整数或者浮点数;密码输入;日期输入;EMail地址;IP地址;MAC地址;许可证号;其他单行输入。QLineEdit中常用方法:setAlignment():按规定的方式对齐文本;clear(): 清除文本框内容;setEchoMode():...

weixin_39525300的博客 259

高精度计算Π的值(C语言)

题目要求 限制使用双向链表作存储结构,请根据用户输入的一个整数(该整数表示精确到小数点后的位数,可能要求精确到小数点后500位),高精度计算PI值。可以利用反三角函数幂级展开式来进行计算。 输入5 输出3.14159 思路分析 反三角函数幂级展开式 由公式可以看出,只要计算出来每一个R(n)的值再相加取二倍就可以得到Π的值。 经过推算,要是令R(1)=2,只需要将每个R(n),相加即可。 因...

weixin_46251155的博客 8032

CMFCListCtrl自动排序的实现

   由于工作中要用到CMFCListCtrl控件中的排序功能,但是MFC下的类CMFCListCtrl中只提供了虚函数CompareItems,因此这个函数在我们自己的代码中是要自己实现的。我想从CMFCListCtrl继承下来实现自己的CXSLMFCListCtrl。她的功能就有自动排序的,根据其ListCtrl控件上的内容来判断数据类型,然后再作排序的实现。优先排序顺序为整形、时间、IP、字

xiaolin317的专栏 2990

Unreal5 从入门到精通之 如何实现 离线语音识别

本文介绍了如何使用离线语音识别插件 Offline Speech Recognition 进行本地语音转文本处理。该插件支持离线运行,用户可以通过下载并运行语言服务器(如 Vosk)来处理语音数据。文章详细说明了如何设置语言服务器、下载语言模型,并在虚幻引擎(UE)项目中配置麦克风和语音捕获。此外,还介绍了如何将 SoundWave 作为输入,以及如何通过节点将语音数据发送到语言服务器进行处理。最后,提供了相关文档链接以供进一步参考。

TxNet 904

芯擎SEC1000芯片参数详细介绍

随着龙鹰一号的不断进化和应用,未来的智能座舱将不仅仅是显示和控制的集成,更是人与车之间的一种默契和无缝交互的体现。在汽车行业迈向智能化和电动化的浪潮中,座舱已不仅仅是一个驾驶者的操作空间,而是逐渐演变为一个集娱乐、信息、控制于一体的智能交互平台。今天的汽车不仅需要强劲的动力和炫酷的外观,更需要一颗强大而智能的“心脏”来支撑复杂的座舱体验和安全驾驶需求。想象一下,未来的汽车不再仅仅是交通工具,它将成为你的移动私人管家,了解你的习惯,甚至提前预测你的需求。让我们一起走进龙鹰一号的世界,探索智能座舱的无限可能!

weixin_43199439的博客 1722

简单ListCtrl

<br /><br />InitCommonControls();<br />InitContextMenuManager();<br />InitShellManager();<br /> <br />CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));<br />CMFCButton::EnableWindowsTheming();<br /> <br />class CMyListCtrl :

a_developer的专栏 575

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 382

MFCListCtrl支持排序

原始的CMFCListCtrl本身支持排序,重载OnCompareItems,在设置数据时需要SetItemData

holiday21的博客 401

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

vc2008对话框项目使用Feature Pack

在vc2008 sp1中,引入了Feature Pack美化界面,不过微软提供的例子都是针对单文档或者多文档项目的,要在对话框项目中使用Feature Pack中的一些美化控件(如CMFCListCtrl),需要在App类(继承自CWinAppEx)的InitInstance函数中添加下面两行: CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS

Reverser的专栏 754

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

vs安装包哪里有mfc_VS 2008和2010的MFC功能包

vs安装包哪里有mfc In this article, I'll describe -- and show pictures of -- some of the significant additions that have been made available to programmers in the MFC Feature Pack for Vis...

cunchi8090的博客 883

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

自绘控件的4种方法

自绘控件的4种方法

hdduuyf的博客 533

列表控件排序功能的实现

适合读者:初学一、前言列表控件是大家经常用到的控件,但对其排序时因为需要设计用于排序的回调函数,所以往往让初学者不知所措,本文提供了一个将排序功能封装好的类:CSortListCtrl,您只需要简单使用该类即可。下载示例工程 17K (下图是示例程序的运行界面)二、如何使用CSortListCtrl是从CListCtrl派生的,所以使用方法与ClistCtrl是基本一致

dongliqiang2006的专栏 947

CMFCListCtrl::OnCompareItems 排序处理

1.在插入数据时:       DWORD itemIndex = m_lstCtrlSysStatus.GetItemCount();       m_lstCtrlSysStatus.InsertItem(itemIndex, netShareNode.szNetShareName);       m_lstCtrlSysStatus.SetItemData(itemIndex, ite

wowolook的专栏 3805

使用CustomDraw来自绘CListCtrl控件

转自:http://www.cnblogs.com/caojianzhao/archive/2011/11/06/2238312.html Custom Draw 基础   我将会尽我所能把Custom Draw的处理描述清楚,而不是简单的引用MSDN的文档。这些例子都需要你的程序有一个ListCtrl在对话框上,并且这个ListCtrl处于Report和多列模式。

希望记录下自己的一点一滴,慢慢成长。。 1391

右键单击列表控件的一项---弹出菜单

1. 给对话框添加列表控件 (类型是CListCtrl)2. 设置列表控件的样式3.使用CLASS WIZARD 重载消息  1)打开CLASS WIZARD  2)在ObjectIDs下选中一个CDialog,在Message选中WM_CONTEXTMENU,点击右侧的Add Function,确定  3)在新添加的函数中加载菜单,并将其显示在鼠标点击的位置,代码如下其中,m_menu是一个CMenu类型的公共变量,这里也可以设置为局部变量,IDR_MENU1为菜单的IDvoid CXXX::OnCont

hamigua_12的专栏 746
上一篇: CMFCRibbonStatusBar用法
下一篇: CMFCControlRendererInfo类的参数
洗洗睡去
博客等级 码龄19年 277粉丝 90原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值