在MFC中,我们经常会需要给自己的Listcontrol 添加背景颜色,下面便是如何添加的详细过程。首先需要你的程序有一个ListCtrl在对话框上,并且这个ListCtrl处于Report和多列模式。
     Custom draw可以被想象成一个轻量级的,容易使用的重绘方法(重绘方法还有几种,例如Owner Draw等)。这种容易来自于我们只需要处理一个消息(NM_CUSTOMDRAW),就可以让Windows为你干活了,你就不用被逼去处理"重绘过程"中所有的脏活了。
     Custom draw 的消息映射入口:
Custom draw 是一个类似于回调的处理过程,Windows在绘制List Ctrl的某个时间点上通过 Notification 消息通知你的程序,你可以选择忽略所有的通知(这样你就会看到标准的ListCtrl),或者处理某部分的绘制(实现简单的效果),甚至整个的控件都由你来绘制(就象使用Owner-Drawing一样)。这个机制的真正卖点是:你只需要实现一些你需要的,其余的可以让Windows为你代劳。
     使用Custom draw:
首先添加一个消息映射:
1.在工程的.cpp文件中的BEGIN_MESSAGE_MAP下添加,其中IDC_LIST1是CListCtrl控件的ID
即:ON_NOTIFY(NM_CUSTOMDRAW, IDC_LIST1, OnCustomdrawList)

2.在工程的.h文件类的声明内添加:

3.在工程的.cpp中写函数实现:
void CMyChattingroom_clientDlg::OnCustomdrawList(NMHDR *pNMHDR, LRESULT *pResult)
{NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>( pNMHDR );*pResult = CDRF_DODEFAULT;if ( CDDS_PREPAINT == pLVCD->nmcd.dwDrawStage ){*pResult = CDRF_NOTIFYITEMDRAW;}else if ( CDDS_ITEMPREPAINT == pLVCD->nmcd.dwDrawStage ){COLORREF crText,crBk;//奇偶判断if ( (pLVCD->nmcd.dwItemSpec % 2) == 0 ){crText = RGB(0,0,0);//RGB(32,32,255);crBk =RGB(229,232,239);}else if ( (pLVCD->nmcd.dwItemSpec % 2) == 1 ){crText = RGB(0,0,0);crBk = RGB(240,247,249);}else{crText = RGB(0,0,0);crBk = RGB(0,0,126);}pLVCD->clrText = crText;pLVCD->clrTextBk = crBk;//设置选择项的颜色if( this->mylistcontrol.GetItemState(pLVCD->nmcd.dwItemSpec, CDIS_SELECTED) ){crBk =RGB(75, 149, 229);//itunes//RGB(10, 36, 106);//RGB(0, 0, 64);crText = RGB(255,255,255);pLVCD->clrText = crText;pLVCD->clrTextBk = crBk;                  *pResult = CDRF_NEWFONT;}if(LVIS_SELECTED == mylistcontrol.GetItemState(pLVCD->nmcd.dwItemSpec,LVIS_SELECTED)){//清除选择状态,如果不清除的话,还是会显示出蓝色的高亮条BOOL b = mylistcontrol.SetItemState(pLVCD->nmcd.dwItemSpec,0,LVIS_SELECTED); pLVCD->clrText = crText;pLVCD->clrTextBk = crBk;*pResult = CDRF_NEWFONT;return;}*pResult = CDRF_NEWFONT;}
}

经过以上几步就完成了Custom draw消息的添加,可以实现一些简单的美化效果。

MFC——Listcontrol 添加背景颜色相关推荐

  1. java word 颜色设置_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  2. 如何给基于Element-UI的表格添加背景颜色

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.如何给基于Element-UI的表格添加背景颜色? 二.使用步骤 1.复制Element-UI的Table 2.j ...

  3. matlab导出图片背景_matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  4. 【教程】Spire.PDF教程:如何给PDF添加背景颜色和平铺背景图

    Spire.PDF是一个专业的PDF组件,能够独立地创建.编写.编辑.操作和阅读PDF文件,支持 .NET.Java.WPF和Silverlight.Spire.PDF的PDF API拥有丰富的功能, ...

  5. java 加背景颜色_Java 给Word文档添加背景颜色

    前言 当我们制作好Word文档后,想要让枯燥乏味的文本显得有活力,或是想高亮显示文档中指定的段落或文字,此时我们可以通过为整个文档或某特定文字/段落添加背景色的形式来实现.本文将使用Free Spir ...

  6. QT tableWidget给单个表格添加背景颜色

    QT tableWidget给单个表格添加背景颜色 代码示例 QWidget *widget = new QWidget(); QString wStyle = QString("backg ...

  7. python加颜色_python抠图和添加背景颜色

    项目概况简介:通过调用removebg库去除照片中的背景,也可以通过调用PIL库添加背景,这样可以用来实现证件照的背景颜色更换,比如生成白色.蓝色和红色 代码流程:输入-要得到的图片背景处理效果 A- ...

  8. matlab 加入背景,matlab美化图片之添加背景颜色

    background.png The image is generated by myself in matlab. 只是在产生的图案中给想要标注的地方添加背景颜色,同时要求背景颜色在线图的下面,代码 ...

  9. PDF如何添加背景颜色与图片背景

    众所周知,PDF文件在工作与生活中得到越来越多的使用,许多小伙伴在工作中也频频接触到pdf文件,在使用的过程中一些问题会困扰大家,比如pdf如何添加背景颜色和图片背景?下面小编就为大家操作一下PDF编 ...

  10. MFC改变对话框背景颜色

    原文链接: http://blog.sina.com.cn/s/blog_59955afc0100spjz.html 方法一:调用CWinApp类的成员函数SetDialogBkColor来实现. - ...

最新文章

  1. 某年轻程序员吐槽大龄程序员“太水”:技术水平低,经验都过时,看不起新人,不服从管理!...
  2. React Native 'config.h' file not found
  3. 数字货币HD钱包 BIP32、BIP44、BIP39 简介
  4. Async/Await FAQ
  5. 为什么前端工程师很少用Visual Studio?
  6. php跨域请求解决方案_解决TP接口跨域问题
  7. 网工路由交换相关配置
  8. 基于C#和SQL SERVER的企业进销存管理系统的设计和实现
  9. 屏幕尺寸、分辨率、像素密度三者关系
  10. 计算机二级考试能不能用键盘,计算机二级 ,你中招了吗?
  11. 有趣的java编程题_java编程题 有趣的数
  12. ppt批量转为pptx格式。
  13. 杭州考驾照-2017.4
  14. 动态修改域名解析服务器(DDNS)
  15. [ARM] ARM处理器的7种工作模式和2种工作状态
  16. 系统设计都需要考虑什么
  17. 涨跌停计算器_在线涨跌计算器
  18. 计算机抓桌面图用,图片——要抓就抓最清晰的 -电脑资料
  19. 网页301重定向检测工具(网页HTTP状态代码检测)
  20. 广州的11个辖区_对不起,你真的不了解广州11个区!

热门文章

  1. 基于eclipse和hiber的pojo、数据库表与mapping的相互转换
  2. java爬取携程景点门票数据
  3. 软件架构C4模型简介
  4. dhcp服务器不显示mac地址,利用MAC地址解决无法获得DHCP动态地址分配问题
  5. js中的深拷贝和浅拷贝
  6. BZOJ 1189 HNOI2007 紧急疏散evacuate
  7. Unity-遮挡剔除
  8. python条形图y轴_python 中条形图绘制
  9. C语言程序设计--存储单元术语解析
  10. Matlab 图片批量复制到word中