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 < ...
 
随机推荐
- linux-shell——02
			
Linux命令的通用命令格式 :命令字 [选项] [参数] 选项: 作用:用于调节命令的具体功能 "-"引导短格式选项(单个字符) EX:“-l” "--"引导 ...
 - Clion 不能杀死进程
			
描述 自己使用时发现点了结束按钮后,打开任务管理器,发现刚才运行的程序还在,并没有被杀死. 有时如果一个程序写了死循环,就会出现疯狂占用内存,最后不得不关机重启. 解决方案 这是他的社区有人也有这样的 ...
 - 笔记-scrapy-去重
			
笔记-scrapy-去重 1. scrapy 去重 scrapy 版本:1.5.0 第一步是要找到去重的代码,scrapy在请求入列前去重,具体源码在scheduler.py: def en ...
 - sql查询题目
			
--1.查询在1981年入职的员工信息select * from emp where hiredate between '01-1月-1981'and '31-12月-1981'; select * ...
 - Toolbar中menu菜单文字颜色的修改
			
Toolbar菜单中menu当中我们大多数都使用图片来按钮,可是有些时候我们也会直接使用文字,文字的颜色如何修改呢. 其实很简单,我们只要修改styles.xml文件中,添加一句 <item n ...
 - shuffle的过程分析
			
shuffle的过程分析 shuffle阶段其实就是之前<MapReduce的原理及执行过程>中的步骤2.1.多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点 ...
 - 剑指Offer - 九度1517 - 链表中倒数第k个结点
			
剑指Offer - 九度1517 - 链表中倒数第k个结点2013-11-30 02:57 题目描述: 输入一个链表,输出该链表中倒数第k个结点.(hint: 请务必使用链表.) 输入: 输入可能包含 ...
 - 《Cracking the Coding Interview》——第9章:递归和动态规划——题目11
			
2014-03-21 20:20 题目:给定一个只包含‘0’.‘1’.‘|’.‘&’.‘^’的布尔表达式,和一个期望的结果(0或者1).如果允许你用自由地给这个表达式加括号来控制运算的顺序,问 ...
 - 【Feasibility of Learning】林轩田机器学习基石
			
这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...
 - windows下使用RoboCopy命令进行文件夹增量备份
			
RoboCopy,它是一个命令行的目录复制命令,自从Windows NT 4.0 开始就成为windows 资源工具包的一部分,然后在Windows Vista.Windows 7和 Windows ...