设置listContrl中指定行的颜色
来源:互联网 发布:mac可以玩使命召唤吗 编辑:程序博客网 时间:2024/05/16 17:14
在MFC中 自己通过手动拖放CListCtrl控件来制作自己的表格;
目的: 将指定item的行更该颜色;
步骤:
1,在窗口中拖放CListCtrl控件, 单击右键 创建控件对象:
CListCtrl m_list;
2, 手动新建类 CMyListCtrl :public CListCtrl
类实现代码:
1.1,CMyListCtrl.h#pragma once#include "afxcmn.h"class CMylistCtrl : public CListCtrl{public: CMylistCtrl(void);public: ~CMylistCtrl(void);public: afx_msg void OnNMCustomdraw(NMHDR *pNMHDR, LRESULT *pResult); void SetItemColor(DWORD item, COLORREF color); CMap<DWORD , DWORD& , COLORREF , COLORREF&> MapItemColor; DECLARE_MESSAGE_MAP()};
1.2, CMyListCtrl.cppBEGIN_MESSAGE_MAP(CMylistCtrl, CListCtrl) ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnNMCustomdraw) // ON_WM_SIZE()END_MESSAGE_MAP()CMylistCtrl::CMylistCtrl(void){}CMylistCtrl::~CMylistCtrl(void){}void CMylistCtrl::OnNMCustomdraw( NMHDR *pNMHDR, LRESULT *pResult ){ *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: COLORREF ItemColor; //根据在SetItemColor(DWORD iItem, COLORREFcolor) 设置的//ITEM号和COLORREF 在摸板中查找,然后进行颜色赋值。 if (MapItemColor.Lookup(nmcd.dwItemSpec, ItemColor)) { //lplvdr->clrText = RGB(0,0,0)//ItemColor lplvdr->clrTextBk = ItemColor; *pResult = CDRF_DODEFAULT; } break; }}void CMylistCtrl::SetItemColor( DWORD item, COLORREF color ){ // m_iCurrentItem = iItem; // m_CurrentColor = color; MapItemColor.SetAt(item, color);//设置某行的颜色 this->RedrawItems(item,item);//重新染色 //this->SetCheck(item,1); this->SetFocus();//设置焦点 UpdateWindow();}
4, 在MFC中包含CMyListCtrl.h
然后进行替换:
CListCtrl m_list; -> CMyListCtrl m_list;
其他不变;
5, 在你需要的地方更改颜色:
m_list.SetItemColor(item, (DWORD)RGB(255,255,255));
0 0
- 设置listContrl中指定行的颜色
- 改变字符串中指定字符的颜色
- 改变字符串中指定字符的颜色
- IOS-51-改变字符串中指定字符的颜色
- sed 删除文件中指定的行
- 如何设置Devexpress TreeList中指定行指定列的编辑状态
- android中指定颜色格式处理
- ListContrl
- android 过滤图片中指定的颜色,返回透明的png图片
- 点击tr变换颜色,同时获取该行中指定列的值
- 删除文件中指定字符串的所有行
- shell sed 删除文本中指定的某一行
- 获取DataTable中指定位置开始的数据行
- TreeList中指定行指定列的编辑状态
- linux C 修改文本文件中指定行的内容
- 如何用python读取文本中指定行的内容
- Extjs将gird中指定行的复选框勾选
- Extjs将gird中指定行的复选框勾选
- Maximum Gap
- 3D图形数学速成课(NOTE)
- 九度OJ 题目1208:10进制 VS 2进制
- Python下的TK(二)控件之Label
- 根据离散概率随机返回int值java代码&理解
- 设置listContrl中指定行的颜色
- Ubuntu 12.04中MyEclipse 10.6+下载+安装+破解
- Haskell函数式编程基础习题
- 从C开始_结构体_结构指针
- Python下使用tarfile模块来实现文件归档压缩与解压
- 创建人/创建时间/最后修改人/最后修改时间封装处理
- 在不公平的世界里,证明自己!
- MySQL-python使用
- boost::enable_shared_from_this的部分实现研究