设置listContrl中指定行的颜色
在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.cpp BEGIN_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, 在你需要的地方更改颜色:
设置listContrl中指定行的颜色的更多相关文章
- 【练习】数据移动---parfile导出表中指定行:
要求: ①创建存放数据的文件: ②使用默认的bad文件生成方式: ③使用truncate选项方式. 1.准备条件: [oracle@host03 ~]$ mkdir datadump [oracle@ ...
- mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)
转自:http://www.maomao365.com/?p=5323 摘要:下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除”表A”中,ID 为1.2.3.4.5的 ...
- 设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段
设置UniDbGrid的整行显示颜色,如果某字段值是我们的控制字段,使用下列判断设置更快捷一点: procedure TUniForm.UniDBGridDrawColumnCell(Sender: ...
- DbGridEh中改变行的颜色
DbGridEh中改变行的颜色 代码也挺简单的,只是当时没有想到: if ds2.FieldByName('AutoRead').AsInteger=0 thenbegin DBGridEh1.Ca ...
- iOS 设置文本中指定某段文本的颜色 大小
NSString *money = @"300"; NSString *perStr = @"元/时"; NSString *text = [NSString ...
- 设置secureCRT中vim的字体颜色
1.在/etc/vimrc新增以下一行 syntax on 注:上述方法对root用户无效,原因为在一般用户中,alias vi=vim,而在root用户中默认无此设置,因此若需要root用户也显示颜 ...
- 设置secureCRT中vim的字体颜色 分类: B3_LINUX 2014-07-12 22:01 1573人阅读 评论(0) 收藏
1.在/etc/vimrc新增以下一行 syntax on 注:上述方法对root用户无效,原因为在一般用户中,alias vi=vim,而在root用户中默认无此设置,因此若需要root用户也显示颜 ...
- 怎样设置easyui中datagrid行高
$('#face_table2').datagrid({ title: '信息', iconCls: 'icon-save', url: 'callro ...
- python 删除文件中指定行
代码适用情况:xml文件,循环出现某几行,根据这几行中的某个字段删掉这几行这段代码的作用删除jenkins中config.xml中在自动生成pipline报错的时的回滚 start = '<se ...
随机推荐
- 用多线程发送邮箱(一次给一个用户发送N封邮件)
前台不用写,后台执行方法就可以了. namespace SendMail { public partial class SendMail_Page : System.Web.UI.Page { pro ...
- css---动画封装
animation-name 属性指定应用的一系列动画,每个名称代表一个由@keyframes定义的动画序列 值: none 特殊关键字,表示无关键帧. keyframename 标识动画的字符串 a ...
- (转)Java ClassLoader详解
转:http://java.chinaitlab.com/base/804400.html 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一.它使得 Java 类可以被动态 ...
- linux下常见的包安装方式
linux下常见的包安装方式 一.总结 一句话总结: rpm包安装 tar.gz源代码包安装 yum方式安装rpm包 bin文件安装 1.yum是什么? 安装所有依赖的软件包 Yum(全称为 Yell ...
- os.path.basename()
返回path最后的文件名.如果path以/或\结尾,那么就会返回空值.即os.path.split(path)的第二个元素. >>> import os >>> p ...
- JS 二维数组
给一个数组元素,赋一个数组的值,那么,这个数组就是“二维数组”. 二维数组,就得用两层循环来实现.也就是说循环套循环. 二维数组的循环,与二维表格的循环一模一样. 二维数组的访问:数组名后跟多个连续的 ...
- 17.splash_case01
# 抓取今日头条,对比渲染和没有渲染的效果 import requests from lxml import etree # url = 'http://localhost:8050/render.h ...
- 01_MyBatis入门
一.MyBaits介绍 1.MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且 ...
- 2019 CCPC 湖南全国邀请赛
A. Chessboard 做法1 单纯形. 做法2 最大费用可行流问题,行列模型. 对每行建一个点,每列建一个点.物品 \(i\) 在 \((r,c)\),那么 \(r\) 向 \(c\) 连流量为 ...
- Linux 容器 vs 虚拟机——谁更胜一筹
自从Linux上的容器变得流行以来,了解Linux容器和虚拟机之间的区别变得更加棘手.本文将向您提供详细信息,以了解Linux容器和虚拟机之间的差异. Linux容器vs虚拟机 - 应用程序与操作系统 ...