添加CListCtrl控件的NM_DBLCLK(鼠标左键双击)消息映射

OnNMDblclkList(NMHDR *pNMHDR, LRESULT *pResult)
{NM_LISTVIEW *pNMListCtrl = (NM_LISTVIEW *)pNMHDR; //该变量是个结构体指针,该结构体中存放着双击的行号(iItem),以及列号(iSubItem),当未选中时返回-1//找了一些网上的一些教程,当表没有插入数据时,也能响应解析行号列号,试了下我这边不行,原因未知//所以我这里想要双击解析行号列号,必须要提前插入行列,可以插空字符if (pNMListCtrl->iItem != -1){CRect itemRect,dlgRect;//获取点击的单元格的客户区,相对于控件的客户区m_ListCtrl.GetSubItemRect(pNMListCtrl->iItem, pNMListCtrl->iSubItem, LVIR_BOUNDS,itemRect);//获取CLisrmtCtrl控件的客户区域m_ListCtrl.GetWindowRect(&dlgRect);//这个函数可以把你在屏幕上鼠标的位置转换为你打开的程序的客户区的坐标,把这个注释掉之后,就看不到编辑框了ScreenToClient(&dlgRect);//单元格相对于控件的客户区的top+控件相对于程序客户区的top = 单元格在程序客户区的topitemRect.top += (dlgRect.top);itemRect.left += (dlgRect.left);//m_height,m_width是单元格的长度,在初始化CListCtrl控件时,最好设置固定的列宽以及行高(行高用图片撑起来的方法比较简单),因为这样编辑框出现的位置特别是大小比较准确固定,就是单元格的宽度,否则可能会出现编辑框每次出现大小极其不固定的情况itemRect.bottom = rect.top + m_height;itemRect.right = rect.left + m_width;//m_ItemEdit是一个CEdit的control变量,这里的思想就是双击单元格,解析区域位置,然后让该区域显示一个编辑框控件,保存编辑内容后,再设置单元格内容m_ItemEdit.MoveWindow(&itemRect);m_ItemEdit.ShowWindow(SW_SHOW);m_ItemEdit.SetFocus();//这样就可以每次编辑框跳出来,只有编辑框深蓝色(选种色),不至于列表一整行都是深蓝色//知道了item的行号和列号了,就可以根据编辑框保存的数据以及SetItemText(m_riw,m_column,str)设置单元格的内容了,这里可以利用CEdit的KILLFOCUS消息映射,每次编辑框失去焦点,就设置单元格数据显示m_row = pNMListCtrl->iItem; //记录选中的行m_column = pNMListCtrl->iSubItem;//记录选中的列}
}

CListCtrl设置行高,这里copy了一份,方便自己查找

CImageList imgList;
imgList.Create(1, 24, TRUE|ILC_COLOR32,1,0); //其中24这个参数就是高度
m_ListCtrl.SetImageList(&imgList, LVSIL_SMALL);

MFC CListCtrl实现双击编辑相关推荐

  1. MFC::CListCtrl常用操作

    提示 创建MFC项目 添加 listControl 控件 设置视图:Report 添加关联变量:m_CListCtrl 文章目录 提示 设置选中整行 插入 "行"/"列& ...

  2. html双击变成可编辑,jquery 实现双击编辑并保存

    jquery 实现双击编辑并保存 Jesse 2013-12-11 19:47:00 1153 最近在做一个数据修改的例子,一个个点开修改很麻烦,于是就想到ecshop后台里的 只需单击就以编辑了,在 ...

  3. html双击变成可编辑状态,JS实现双击编辑可修改状态的方法

    本文实例讲述了JS实现双击编辑可修改状态的方法.分享给大家供大家参考.具体如下: 这是现在流行的一个表单特效,在网页上单击某文字,文字变为编辑状态,或者是让输入新文字,这就是JavaScript控制表 ...

  4. JS单击/双击编辑功能

    JS单击/双击编辑功能 HTML <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  5. jeecg双击编辑的几种格式

    1.在datagrid的里可以使用jeecg带的双击编辑事件 2.添加双击编辑方法onDblClick="db_edit(rowIndex,rowData)" //双击编辑行 fu ...

  6. Cdr安装显示服务器出现,CorelDraw去掉出血位置打印 CDR双击编辑位图提示启动服务器应用程序失败 对象合并...

    CorelDraw去掉出血位置打印 CDR双击编辑位图提示启动服务器应用程序失败 对象合并 CorelDraw去掉出血位置打印? CorelDraw去掉出血位置再去打印要怎么设置? 我好像看过类似于遮 ...

  7. 实现双击编辑input

    前端实现双击编辑Input 照猫画虎系列-请使用cv大法 <!DOCTYPE html> <html lang="en"> <head>< ...

  8. word 编辑域中的汉字_word中插入的cad对象无法双击编辑问题解决记录

    昨日,安装了天正插件5.0后,插入word中的cad图无法编辑了,弹出提示的大意是检查是否安装了cad或者是否关闭了CAD中所有的弹窗. 在此之前,计算机装了office2010和cad2014及ca ...

  9. layui table 修改为双击编辑

    点开layui目录,编辑table.js文件,搜索i.data("edit"): a.layBody.on("click","td",fun ...

  10. MFC CListCtrl修改表头字体、字体颜色、背景颜色、字体垂直居中、表头高度

    文章目录 前言 一.文件链接 二.如何使用 效果 前言 本人最近在MFC项目中需要做到如文章标题的效果,查了很久资料,终于实现了上述功能.为了后人少走弯路,本人决定将自己这部分相关代码开源出来,大家可 ...

最新文章

  1. 1215.2——单链表
  2. Visual Studio registry capture utility 已停止工作的解决办法
  3. VTK:图表之ConstructGraph
  4. 敲诈勒索罪无罪裁判要旨汇总
  5. 数据库基础知识——变量
  6. 雾山五行专题高清壁纸,绝美动漫场景
  7. mipi的dsi全称_MIPI扫盲——DSI介绍(二)
  8. 如何检查Android上的互联网访问? InetAddress永远不会超时
  9. python编程100例-一,python编程100例
  10. 618秒杀抢不到?用Python完成毫秒级抢单,助你秒杀淘宝大单
  11. c语言程序运行时可以从键盘上读入,C语言程序设计题库之
  12. 自适应PID控制基本概念及常用自适应算法
  13. 16 位 CPU 寄存器英文全称
  14. IBM推出企业信息安全框架
  15. 深入浅出IO流知识——基础流
  16. Js isNaN()和Number.isNaN()、isFinite() 和 Number.isFinite()
  17. 国外常用浏览器User-Agent汇总
  18. 营销模式线上与线下相结合
  19. Linux 常用命令大全(虚拟机)
  20. python对小数的特殊处理(个人需求-小数点后有一位保留,否则十分位进1)

热门文章

  1. 常用c语言代码大全,C语言的一些常用代码
  2. macOS 锐捷校园网解决方案
  3. axure导入的元件库不见了_Axure教程丨制作自己的Axure元件库
  4. 咚咚咚————【Matlab】单片机读取摄像头回传的RGB数组绘制图片
  5. 1到100的平方和 java,java 1个数等于几个数平方和
  6. 视频转gif怎样操作?如何快速在线生成gif动图?
  7. 主板在计算机系统中的应用,浅谈主板在计算机硬件系统中的重要性.doc
  8. app国际化多语言strings.xml 与 Excel 互相转换的工具,支持iOS和Android
  9. 北斗导航 | RAIM算法之奇偶矢量法(原理讲解,附代码链接:可用性判定)
  10. 知识图谱商业应用 、介绍