=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消息的更多相关文章

  1. MFC中CListCtrl说明

    转载:http://blog.csdn.NET/lhy2199/article/details/5177032 listctrl默认view 风格为report CListCtrl类封装"列 ...

  2. MFC中CListCtrl控件的使用方法

    定义一个派生类CViewList 派生于CListCtrl 在要包含该控件的类(CView)中定义一个CViewList类型的变量 CViewList m_wndListView; 在CView响应的 ...

  3. MFC中对话框的各种消息触发时间

    小结:WM_CREATE是所有窗口都能响应的消息,表明本窗口已经创建完毕.可以安全的使用这个窗口了,例如在它上面画控件等等.这个状态肯定是在调用ShowWindows()显示窗口之前.WM_WM_IN ...

  4. MFC中CListCtrl类依靠CImageList贴图并显示不同图像

    只介绍主要方法,函数的具体参数可在MSDN上查阅 ------------------------------------------- CListCtrl     m_ListCtrl; CImag ...

  5. MFC中ON_UPDATE_COMMAND_UI和ON_COMMAND消息区别

    原文链接地址:http://www.cnblogs.com/orez88/articles/2217823.html 第一个是你打开这个菜单时,处理这个菜单的状态,比如选中.变灰等等.  第二个是响应 ...

  6. 针对NM_CUSTOMDRAW消息的学习

    消息的形式:1 窗口消息,2 命令消息,3 WM_NOTIFY消息,4 自定义消息 我们的NM_CUSTOMDRAW消息就是就属于第三种WM_NOTIFY消息,而添加消息映射的方法分为两种: BEGI ...

  7. 高级列表控件ListCtrl关联的MFC中的类:CListCtrl

    高级列表控件ListCtrl关联的MFC中的类:CListCtrl■ 报表样式ListCtrl常用操作:1.添加列标题头:InsertColumn2.获取与设置列宽:GetColumnWidth.Se ...

  8. MFC中添加消息响应函数

    转自:http://blog.csdn.net/eddy_liu/article/details/8474677 目前,用MFC设计的Windows应用程序几乎都采用文档/视图结构.这种程序框架与简单 ...

  9. MFC中消息响应机制

    由于视类窗口始终覆盖在框架类窗口之上,因此所有操作,包括鼠标单击.鼠标移动等操作都只能由视类窗口捕获.一个MFC消息响应函数在程序中有三处相关信息:函数原型.函数实现和以及用来关联消息和消息响应函数的 ...

随机推荐

  1. CSS的一些小技巧

    1.黑白图像img.desaturate { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: graysc ...

  2. ADSafe净网大师----所谓的去广告神器竟然在偷偷推送广告

    今天刚开发完的网站上线联调, 偶然发现<head>里多了一个脚本引用: <script async src="http://c.cnzz.com/core.php" ...

  3. 一步一步将Vim打造成C++超级IDE

    文/嶽永鹏 最近从MS Windows 转到了Liunx,花了一段时间熟悉和学习Liunx环境.有时候,真的很是怀念MS Vistual Studio那种超级智能的开发环境,总是想在Vim拾起那些曾进 ...

  4. c#数据绑定(4)——向查询中添加参数

    本实例主要练习了ADO.Net 连接到外部数据库的基础上,向查询中添加参数.使用的是ACCESS数据库. 在ACCESS数据库中可以用MSSQL的形式定义操作字符串,也可以采用OLEDB的形式. MS ...

  5. 常用C# DateTime 日期计算

    //今天 DateTime.Now.Date.ToShortDateString(); //昨天,就是今天的日期减一 DateTime.Now.AddDays(-1).ToShortDateStrin ...

  6. 268. Missing Number -- 找出0-n中缺失的一个数

    Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is missin ...

  7. ArcGIS操作Excel文件没有注册类解决办法

    在ArcGIS Desktop中进行表连接时选择了一张excel表,但添加该表时报错: 原因是机器上缺少Office的数据驱动. ArcGIS 支持 : Excel 2003 以及更早版本的 .xls ...

  8. SQL Server数据库备份:通过Windows批处理命令执行

    通过Windows批处理命令执行SQL Server数据库备份 建立mybackup.bat ,输入以下内容直接运行该脚本,即可开始自动备份数据库也可把该脚本加入windows任务计划里执行. --- ...

  9. css3 transfrom变换

    Transform 转换 CSS3中的转换允许我们对元素进行旋转.缩放.移动或倾斜,它分为2D转换 或3D转换 在CSS2时代,如果要做一些图片转换角度,都依赖于图片.flash或JavaScript ...

  10. JAVA 循环语句的练习

    /*for(int i=1;i<=10;i++)   //输出一个三角形 { for (int j=1;j<=i;j++) { System.out.print("*" ...