MFC中ClistCtrl的=NM_CUSTOMDRAW消息
=NM_CUSTOMDRAW是你点击列表内部是的消息映射:
例如:我想在我删除一行列表的数据,但是删除后下一行数据继续保持高亮状态
void CChildView::OnDel()
{
int count = m_list.GetSelectionMark(); if (count == -)
{
AfxMessageBox(_T("请先选中一行在删除!"));
return;
}
m_list.DeleteItem(count);
TRACE("%d\n", count);
m_list.SetSelectionMark(count);
}
void CChildView::OnNMCustomdraw(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)
{
*pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if ((CDDS_ITEMPREPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage)
{ COLORREF clrNewTextColor, clrNewBkColor; int nItem = static_cast<int>(pLVCD->nmcd.dwItemSpec); int index = m_list.GetSelectionMark(); if (index == nItem)//如果要刷新的项为当前选择的项,则将文字设为白色,背景色设为蓝色
{
clrNewTextColor = RGB(, , ); //Set the text to white
clrNewBkColor = RGB(, , ); //Set the background color to blue
}
else
{
clrNewTextColor = RGB(, , ); //set the text black
clrNewBkColor = RGB(, , ); //leave the background color white
} pLVCD->clrText = clrNewTextColor;
pLVCD->clrTextBk = clrNewBkColor; *pResult = CDRF_DODEFAULT;
}
}
MFC中ClistCtrl的=NM_CUSTOMDRAW消息的更多相关文章
- MFC中CListCtrl说明
转载:http://blog.csdn.NET/lhy2199/article/details/5177032 listctrl默认view 风格为report CListCtrl类封装"列 ...
- MFC中CListCtrl控件的使用方法
定义一个派生类CViewList 派生于CListCtrl 在要包含该控件的类(CView)中定义一个CViewList类型的变量 CViewList m_wndListView; 在CView响应的 ...
- MFC中对话框的各种消息触发时间
小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_IN ...
- MFC中CListCtrl类依靠CImageList贴图并显示不同图像
只介绍主要方法,函数的具体参数可在MSDN上查阅 ------------------------------------------- CListCtrl m_ListCtrl; CImag ...
- MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别
原文链接地址:http://www.cnblogs.com/orez88/articles/2217823.html 第一个是你打开这个菜单时,处理这个菜单的状态,比如选中.变灰等等. 第二个是响应 ...
- 针对NM_CUSTOMDRAW消息的学习
消息的形式:1 窗口消息,2 命令消息,3 WM_NOTIFY消息,4 自定义消息 我们的NM_CUSTOMDRAW消息就是就属于第三种WM_NOTIFY消息,而添加消息映射的方法分为两种: BEGI ...
- 高级列表控件ListCtrl关联的MFC中的类:CListCtrl
高级列表控件ListCtrl关联的MFC中的类:CListCtrl■ 报表样式ListCtrl常用操作:1.添加列标题头:InsertColumn2.获取与设置列宽:GetColumnWidth.Se ...
- MFC中添加消息响应函数
转自:http://blog.csdn.net/eddy_liu/article/details/8474677 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单 ...
- MFC中消息响应机制
由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击.鼠标移动等操作都只能由视类窗口捕获.一个MFC消息响应函数在程序中有三处相关信息:函数原型.函数实现和以及用来关联消息和消息响应函数的 ...
随机推荐
- No package mysql-server available.
Centos 7 comes with MariaDB instead of MySQL. MariaDb is a open source equivalent to MySQL and can b ...
- css3动画参数解释
@keyframes规定动画.animation 所有动画属性的简写属性,除了 animation-play-state 属性. ----------------------------------- ...
- HTML5中引入的关键特性
新特性 描述 accesskey 定义通过键盘访问元素的快捷键 contenteditable 该特性设置为true时,浏览器应该允许用户编辑元素的内容.不指定变化后的内容如何保存 contextme ...
- cookie详解
一.cookie详解 (1)设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId ...
- 个人介绍和Github使用流程
我叫石莉静,来自网络工程143班,学号1413042067 我的兴趣爱好有看电影.动漫,听音乐,摄影,寻找美食等等. 个人编程能力:非常真诚的说,我的编程能力蛮差的,用C++写过一共写过...(很少很 ...
- oracle Net Manager 服务命名无法配置(无法新建、添加服务名)
今天在配置oracle Net Manager 配置服务命名的时候总是无法配置,以前配置的服务名都显示不出来,然后点击绿色添加按钮也没反应,因为先前我修改了oracle\product\10.2.0\ ...
- mysql创建用户及授权相关命令
移步: https://zhidao.baidu.com/question/1576368583039067980.html
- 【仿真】Lattice_Diamond_调用Modelsim_仿真
仿真前的准备工作:在modelsim中添加lattice仿真库:1.去除modelsim安装目录下modelsim.ini的只读属性.2.打开modelsim,更改目录File>Change d ...
- μC/OS-Ⅲ系统的资源管理
一.各种资源管理方法简介 μC/OS-Ⅲ系统中提供了一些基本方法用于管理共享资源(典型的共享资源有:变量.数据结构体.RAM中的表格.IO设备中的寄存器等).资源共享方法名称及适用范围如下表所示. 资 ...
- javadoc 生成自定义的标签
转自:http://www.blogjava.net/lishunli/archive/2010/01/12/309218.html Technorati 标记: tools 关键词 个性化地生成Ja ...