mfc 设置、清除列表框(CListctrl)行颜色
来源:互联网 发布:英雄无敌6兵种数据 编辑:程序博客网 时间:2024/06/14 09:51
指定改变CListCtrl中某一行的颜色,比如说刚添加进去的一行,让它改变颜色,这样记录多了,容易看到自己刚刚加如的行,方便操作可查看,也可以让添加和修改的记录显示不一样的颜色,方便的多了,VC自带的没有这种功能。
1.首先从CListCtrl 继承一个类,命名为CXListCtrl
在头文件中加摸板
CMap<DWORD, DWORD&, COLORREF, COLORREF&> MapItemColor;
好在这里查找你的修改的颜色。
2.自己写个消息映射,可能添加不上,要自己写。
OnNMCustomdraw 为实现函数。
3.写OnNMCustomdraw函数。
4.修改指定一行的颜色。
5.修改全部行的颜色。
头文件:
#pragma onceclass CCXListCtrl:public CListCtrl{public:CCXListCtrl(){}~CCXListCtrl(){}public:void SetItemColor(DWORD iItem, COLORREF color);void SetAllItemColor(DWORD iItem, COLORREF TextBkColor);void Clear();private:DECLARE_MESSAGE_MAP()void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult);CMap<DWORD, DWORD&, COLORREF, COLORREF&> MapItemColor;};
.cpp
#include "stdafx.h"#include "CXListCtrl.h"BEGIN_MESSAGE_MAP(CCXListCtrl, CListCtrl)ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw)END_MESSAGE_MAP()void CCXListCtrl::OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult){// TODO: Add your control notification handler code here*pResult = CDRF_DODEFAULT;NMLVCUSTOMDRAW * lplvdr = (NMLVCUSTOMDRAW*)pNMHDR;NMCUSTOMDRAW &nmcd = lplvdr->nmcd;switch (lplvdr->nmcd.dwDrawStage)//判断状态{case CDDS_PREPAINT:{*pResult = CDRF_NOTIFYITEMDRAW;break;}case CDDS_ITEMPREPAINT://如果为画ITEM之前就要进行颜色的改变{COLORREF ItemColor;if (MapItemColor.Lookup(nmcd.dwItemSpec, ItemColor))// 根据在 SetItemColor(DWORD iItem, COLORREF color) 设置的// ITEM号和COLORREF 在摸板中查找,然后进行颜色赋值。{//lplvdr->clrText = RGB(0,0,0);//ItemColor;lplvdr->clrTextBk = ItemColor;*pResult = CDRF_DODEFAULT;}}break;}}void CCXListCtrl::Clear(){MapItemColor.RemoveAll();}void CCXListCtrl::SetItemColor(DWORD iItem, COLORREF color){MapItemColor.SetAt(iItem, color);//设置某行的颜色。this->RedrawItems(iItem, iItem);//重新染色//this->SetCheck(iItem,1);this->SetFocus(); //设置焦点UpdateWindow();}void CCXListCtrl::SetAllItemColor(DWORD iItem, COLORREF TextBkColor){//INT_PTR ncount = this->GetItemCount();if (iItem > 0){for (DWORD numItem = 0; numItem < iItem; numItem++){//iItem = i;MapItemColor.SetAt(numItem, TextBkColor);this->RedrawItems(numItem, numItem);}}return;}
0 0
- mfc 设置、清除列表框(CListctrl)行颜色
- MFC-CListCtrl设置行高
- 设置某一行背景颜色的CListCtrl
- 设置某一行背景颜色的CListCtrl
- 设置某一行背景颜色的CListCtrl
- 设置CListCtrl某一行背景颜色
- MFC中的列表控件CListCtrl
- MFC 列表控件CListCtrl详解
- MFC中的列表控件CListCtrl
- MFC列表控件 (CListCtrl) 的删除多行
- 设置CListCtrl单元格的颜色
- 自绘CListCtrl类 奇偶行颜色设置
- VC MFC列表视图(CListCtrl)控件
- VC MFC列表视图(CListCtrl)控件
- 设置列表框指定行的文字颜色
- MFC--CListCtrl的两个扩展:可设置单元格(子项)颜色属性、可编辑单元格(子项)
- [VC6 MFC]设置CListCtrl高亮
- MFC CLIstCtrl控件的高度设置
- shiro框架的详细配置及使用
- Django项目开发举例举例之创建应用模型(2)
- 下载图片、视频代码
- 在CentOS 7中安装与配置JDK8
- java简单编码
- mfc 设置、清除列表框(CListctrl)行颜色
- 本地化下按首字母分组排序的神器——UILocalizedIndexedCollation
- leetcode(136)数组之Single Number
- eclipse使用maven创建web3.0项目
- java中修改源码
- I/O复用-poll系统调用
- 漏洞应急响应之批量poc验证
- IOS6.0 应用内直接下载程序 不需跳转AppStore
- Linux之Centos7切换JAVA版本