MFC里的CListCtrl选中一行,消息是哪个.实在想不起来了。找了一篇文章,比较有用:

http://www.cnblogs.com/hongfei/archive/2012/12/25/2832806.html

LVN_BEGINDRAG 鼠标左键正在被触发以便进行拖放操作(当鼠标左键开始拖拽列表视图控件中的项目时产生)

LVN_BEGINRDRAG 鼠标右键正在被触发以便进行拖放操作(当鼠标右键开始拖拽列表视图控件中的项目时产生)

LVN_BEGINLABELEDIT 开始编辑项的文本

LVN_COLUMNCLICK 单击列(当鼠标单击列表视图控件列标题时产生)

NM_CLICK 当鼠标单击列表视图控件时产生

LVN_COLUMNCLICK 单击列

LVN_DELETEALLITEMS 删除所有项

LVN_DELETEITEM 删除某个项

NM_DBLCLK 当鼠标双击列表视图控件时产生

LVN_ENDLABELEDIT 结束对项文本的编辑

LVN_GETDISPINFO 请求需要显示的信息

LVN_GETINFOTIP 请求显示在工具提示窗口内的附加的文本信息

LVN_HOTTRACK 鼠标滑过某个项

LVN_INSERTITEM 当向列表视图控件插入项目时产生

lVN_ITEMACTIVATE 激活某个项

LVN_ITEMCHANGED 某个项已经发生变化

LVN_ITEMCHANGING 某个项目正在发生变化

NM_KILLFOCUS 当视表列图控件失去焦点时产生

LVN_KEYDOWN 某个键被按下

LVN_MARQUEEBEGIN 开始某个边框选择

NM_OUTOFMEMORY 当内存溢出时产生

LVN_ODCACHEHINT 虚拟列表控件的显示区域的内容发生了变化

LVN_ODSTATECHANGED 虚拟列表的控件的某个项或某个范围内的项已经发生变化

LVN_ODFINDITEM 需要拥有者查找一个特定的回调项

NM_RCLICK 当鼠标右键单击列表视图控件时产生

NM_RDBLCLK 当鼠标右键双击列表视图控件时产生

NM_SETFOCUS 当列表视图控件获得焦点时产生

LVN_SETDISPINFO 父窗口必须更新控件为项所维护的信息

注解:

HDN:Header Notify

LVN:ListView control Notify 

NM:Notify Message

TVN:TreeView control Notify

LVN_ITEMCHANGED消息的处理

消息处理函数:

void C***Dlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if(pNMListView->uChanged==LVIF_STATE)
{
if(pNMListView->uNewState & LVIS_SELECTED)
{
//处理内容
int nItem=pNMListView->iItem;
CString value[6];
for(int i=0;i<6;i++)
{
value[i]=m_List.GetItemText(nItem,i);
}
}
}
*pResult = 0;
}

消息处理函数中的两个if条件句一定要有,否则可能出现多次进入处理内容的问题。

鼠标双击列表项事件的处理

响应NM_DBLCLK消息:

void CDisSalaryDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW *pNMListView=(NM_LISTVIEW *)pNMHDR;
int nItem=pNMListView->iItem;
if(nItem>=0 && nItem<m_List.GetItemCount())//判断双击位置是否在有数据的列表项上面
{
.............
} *pResult = 0;
}

消息处理函数中的if语句很重要,用于判断双击位置是否在有数据的列表项上面。因为NM_DBLCLK消息是CListCtrl控件(整体)消息,只要是在CListCtrl控件范围之内执行此事件就会产生该消息,而不一定要在有数据的列表项上面。

【VS开发】MFC CListCtrl列表控件的消息响应的更多相关文章

  1. Visual studio C++ MFC之列表控件CListCtrl Control

    背景 本篇旨在MSDN帮助文档下总结列表控件CListCtrl Control的使用,并列出碰到的具体问题. 正文 列表型控件List Control的类是ClistCtrl,具体成员对象详见链接,以 ...

  2. MFC可视化 列表控件的使用

    1.应该加入头文件   #include <Atlbase.h>   2.示例     类向导给列表控件绑定变量m_list DWORD   dwExStyle=LVS_EX_FULLRO ...

  3. 【转载】MFC动态创建控件及其消息响应函数

    原文:http://blog.sina.com.cn/s/blog_4a08244901014ok1.html 这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)h ...

  4. MFC动态创建控件及其消息响应函数

    这几天专门调研了一下MFC中如何动态创建控件及其消息响应函数. 参考帖子如下: (1)http://topic.csdn.net/u/20101204/13/5f1b1e70-2f1c-4205-ba ...

  5. VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程

      开篇语:最近在弄ocx控件发布到asp.net网站上使用,就是用户在使用过程中,自动下载安装ocx控件.(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网 ...

  6. 最全的基于MFC的ActiveX控件开发教程

    浏览器插件之ActiveX开发(一) 一般的Web应用对于浏览器插件能不使用的建议尽量不使用,因为其涉及到安全问题以及影响用户安装(或自动下载注册安装)体验问题.在有特殊需求(如涉及数据安全的金融业务 ...

  7. 【MFC系列】MFC快速设置控件文本字体、大小、颜色、背景

    以静态文本为例,分享一下怎么修改文本字体.大小.颜色.背景等参数.其他文本.控件等可参照修改. 1.修改字体.大小 这个很简单,首先在Dlg类中声明一个CFont类型的成员变量: 然后在类的初始化函数 ...

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

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

  9. MFC-[转]基于MFC的ActiveX控件开发

    作者:lidan | 出处:博客园 | 2012/3/13 16:10:34 | 阅读22次 ActiveX 控件是基于组件对象模型 (COM) 的可重用软件组件,广泛应用于桌面及Web应用中.在VC ...

随机推荐

  1. tensorflow Dataset及TFRecord一些要点【持续更新】

    关于tensorflow结合Dataset与TFRecord这方面看到挺好一篇文章: https://cloud.tencent.com/developer/article/1088751 githu ...

  2. Linux下TCP连接断开后不释放的解决办法

    问题:在开发测试时发现断开与服务器端口后再次连接时拒绝连接. 分析:服务器上查看端口占用情况,假设端口为8888. netstat -anp |grep 8888 发现端口8888端口显示被占用(ip ...

  3. navicat 远程连接服务器1130,1045问题报错处理

    本人踩坑多次,一开始网上搜罗,解决办法大同小异,摸索了很久才全部解决完成,小小bug真磨人啊 首先,根据我的踩坑记录,navicat 1045和navicat 1130貌似属于同一种解决方案,都是修改 ...

  4. go 学习 (四):接口 & 方法

     接口声明 // 接口声明 语法:接口是一个 函数签名 的集合,函数签名(函数的声明,不包括实现) type interfaceName interface { method1(param param ...

  5. 多条件查询----补发周一内容(六级让我忽略了JAVA)

    周一测试多条件查询 要求仿照知网高级查询页面重构期中考试多条件查询功能,可以根据志愿者姓名.性别.民族.政治面目.服务类别.注册时间六种条件实现模糊查询,输出结果以列表形式显示,显示姓名.性别,民族. ...

  6. 4-微信小程序开发(小程序默认页面函数说明)

    https://www.cnblogs.com/yangfengwu/p/11601299.html 源码下载链接: 或者 首先说一下,怎么让自己的一个项目更改名字成为一个新的项目 然后用软件导入项目 ...

  7. TCP BBR 从开启到关闭:以 Debian 9 为例

    TCP BBR 从开启到关闭:以 Debian 9 为例 开启 执行如下命令: echo "net.core.default_qdisc=fq" >> /etc/sys ...

  8. 【JZOJ6210】【20190612】wsm

    题目 定义两个非递减数列的笛卡尔和数列\(C = A \oplus B\) 为\((A_i+B_j)\)排序后的非递减数列 \(W\)组询问,问有多少对可能的数列,满足: \(|C|=s,|A| = ...

  9. mysql 选择所有同学名字

    mysql> select * from test; +----+----------+-------+-----------+ | id | name | score | subject | ...

  10. koa post提交数据,koa-bodyparser中间件来获取post提交数据

    原生 Nodejs 获取 post 提交数据 首先创建并初始化一个node应用,根路由使用index.ejs模板 var Koa=require('koa') var router = require ...