VS2013 MFC listcontrol 双击编辑
原文地址:http://blog.csdn.net/xianglifighter/article/details/17592209
最近在拿一些小的项目练习MFC,遇到不少问题,期中之一便是修改列表框中的数据,查阅了一些资料,总结了一些方法,把期中最简单方便的一种方法在这里做简单介绍。
想要双击实现修改列表框内容,只需四步:
第一步:添加一个edit控件早任意位置,并关联一个变量如:m_edit;,在OnInitDialog()函数中写入 m_edit.ShowWindow(SW_HIDE),作用为初始时讲编辑框应藏
第二步:添加一个CListCtrl控件,关键一个变量如:m_list;然后响应该控件的NM_DBLCLK消息,也就是双击事件处理消息
第三部:在双击事件处理函数中写入:
- NM_LISTVIEW* pNMListView=(NM_LISTVIEW*)pNMHDR;
- CRect rc;
- m_Row = pNMListView->iItem;//获得选中的行
- m_Col = pNMListView->iSubItem;//获得选中列
- if (pNMListView->iSubItem != 0) //如果选择的是子项;
- {
- m_listCtrl.GetSubItemRect(m_Row,m_Col,LVIR_LABEL,rc);//获得子项的RECT;
- m_edit.SetParent(&m_listCtrl);//转换坐标为列表框中的坐标
- m_edit.MoveWindow(rc);//移动Edit到RECT坐在的位置;
- m_edit.SetWindowText(m_listCtrl.GetItemText(m_Row,m_Col));//将该子项中的值放在Edit控件中;
- m_edit.ShowWindow(SW_SHOW);//显示Edit控件;
- m_edit.SetFocus();//设置Edit焦点
- m_edit.ShowCaret();//显示光标
- m_edit.SetSel(-1);//将光标移动到最后
- }
- *pResult = 0;
此时变可以使你的edit控件获得并且修改原来的数值,但是还无法保存包CListCtrl中,所以需要第四步:
响应 之前创建的那个edit的EN_KILLFOCUS消息,也就是失去编辑框焦点时的消息处理,此时应该把edit中的数据写到之前用户所点击的位置中,在该消息的处理函数中写入:
- CString tem;
- m_edit.GetWindowText(tem); //得到用户输入的新的内容
- m_listCtrl.SetItemText(m_Row,m_Col,tem); //设置编辑框的新内容
- m_edit.ShowWindow(SW_HIDE); //应藏编辑框
此时你所双击的CListCtrl中的内容就会被更新了
补充:ListControl的风格必须要有dwStyle |= LVS_EX_FULLROWSELECT;这个是设置选中了某行使得某行高亮,这个风格只适用于report风格
VS2013 MFC listcontrol 双击编辑的更多相关文章
- 怎样在VS2013/MFC中使用TeeChart绘图控件
TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在V ...
- MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档)
原文:http://download.csdn.net/download/jobfind/9559162 MultiThread(VS2013 MFC多线程-含源码-含个人逐步实现文档).rar
- 如何禁用 FastAdmin 双击编辑功能?
如何禁用 FastAdmin 双击编辑功能? 新版 (1.0.0.20180513_beta)增加一个新功能,可以禁止双击编辑. 很多人还是喜欢双击选中复制,默认的双击编辑还是不怎么习惯. 可以以下文 ...
- VS2013 MFC opencv 播放视频
看网上有很多人用的还是CvvImage类,但是Opencv3.0已经没有CvvImage这个类了.百度得之可以使用以前的类,稍作修改就可以了. 头文件: #pragma once #ifndef CV ...
- MFC listcontrol 分列 添加行数据 点击列头排序
适用于 对话框程序 1.在工具箱中拖出 ListControl,然后右键-属性,view-Report 让你的ListControl变成这幅模样! 2.添加ListControl控件的control类 ...
- MFC ListControl使用方法
在原来博客中有:MF CListControl 简单功能使用 推荐文章:MFC类CtrlList用法 今天又又一次来介绍点新东西:双击击listcontrol 做出响应.当然你能够做的还有非常多,比 ...
- VS2013 MFC C++ CString ,const char , char, string 类型转换
VS2013 测试 以下测试加入头文件: # include <string>#include <cstdlib>using namespace std; //-------- ...
- MFC ListControl用法
http://blog.csdn.net/lovton/article/details/6527208 1.建立一个对象m_LogList 步骤:在对话listcontrol控件右键点击添加变量-&g ...
- JS实现双击编辑可修改
需求描述:在一段文字处双击可以进行修改,也就是双击后创建输入框,输入内容,在输入框失去焦点后将输入的内容再以文字的形式显示出来,以下是html代码: 1 <fieldset> 2 < ...
随机推荐
- 9.5web service基础知识
Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到 ...
- android apk瘦身之 图片压缩 tinypng
参考地址: http://blog.csdn.net/jy692405180/article/details/52409369 http://www.tuicool.com/articles/BraI ...
- Android学习记录(9)—Android之Matrix的用法
Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 首先介绍一下矩阵运算.加法和减法就不用说了,对应位相加就好.图像处理,主要用到的是乘法 .下面 ...
- Git从入门到熟练
Git的特性 1. 分布式版本控制 集中式VS分布式 保存更新时的文件快照而非差异 (快照 :是文件系统中的概念或者技术:来自照相领域的概念,是指特定时间点的一个状态) 其他系统在每个版本中记录着各个 ...
- Node应用进程管理器pm2的使用
本文转载自:豆瓣-PM2介绍 更多内容见github上的pm2说明文档pm2 pm2 是一个带有负载均衡功能的Node应用的进程管理器. 当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程 ...
- jeakins用户配置
进入jeakins:系统管理-全局安全设置 如果有多个用户视情况而定进行权限配置
- rabbitmq之rpc
环境:windows或者Linux,python3.6,rabbitmq3.5要求: 可以对指定机器异步的执行多个命令 例子: >>:run "df -h" --hos ...
- ASP.NET Core [4]: Authentication(笔记)
原文连接:http://www.cnblogs.com/RainingNight/p/authentication-in-asp-net-core.html 在现代应用程序中,认证已不再是简单的将用户 ...
- XML转译字符
&(逻辑与) & <(小于) < >(大于) > "(双引号) " '(单引号) ' [/size]
- sources.list
deb http://debian.ustc.edu.cn/ubuntu/ precise main multiverse restricted universe deb http://debian. ...