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 < ...
随机推荐
- [BZOJ1009][HNOI2008]GT考试(KMP+DP)
[不稳定的传送门 Solution dp[i][j]表示前i个字符当前匹配到不吉利串的第j个,即当前方案的后缀等于不吉利串前缀 然而由于n过大,不能直接转移,用矩阵优化 Code #include & ...
- 笔记-python-statement-with
笔记-python-statement-with 1. with语句 1.1. 基础使用案例 在开发时,经常使用with语句来打开文件: with open(‘a.txt’,’a+’, ...
- Android 如何在xmL 里面动态设置padding
如题,Android 如何在xmL 里面动态设置padding 有时候,你的布局加载完成之后,你findViewByid 找到控件,设置padding 会导致白条,布局闪动,那怎么办呢? 你是不是就想 ...
- mybatis 关联查询实现一对多
场景:最近接到一个项目是查询管理人集合 同时每一个管理人还存在多个出资人 要查询一个管理人列表 每个管理人又包含了出资人列表 采用mybatis关联查询实现返回数据. 实现方式: 1 .在实体 ...
- laravel - ReflectionException in Container.php, Class not found?
SIGN UPSIGN IN CATALOG SERIES PODCAST DISCUSSIONS ReflectionException in Container.php, Class not fo ...
- centos使用--centos7.3配置LNMP
目录 1 源的配置 2 安装软件 2.1 安装php7 2.2 安装nginx 2.3 安装mysql 2.4 安装vsftp (ftp登录配置) 3 开机启动设置 4 其它一些配置 4.1 git的 ...
- 部署 CA 和 NPS 服务器证书
TechNet 库 Windows Server Windows Server 2008 R2 und Windows Server 2008 按类别提供的 Windows Server 内容 按类别 ...
- 云计算之路-阿里云上:愚人节被阿里云OCS愚
今天是愚人节,而我们却被阿里云OCS愚,很多地方的缓存一直不过期,造成很多页面中的数据一直不更新.这篇博文将向您分享我们这两天遇到的OCS问题. 阿里云OCS(Open Cache Service)是 ...
- 剑指Offer - 九度1520 - 树的子结构
剑指Offer - 九度1520 - 树的子结构2013-11-30 22:17 题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构. 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每 ...
- [译]10-Spring BeanPostProcessor
Spring框架提供了BeanPostProcessor接口,该接口暴露了两个方法postProcessBeforeInitialization(Object bean,String beanName ...