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 < ...
随机推荐
- CodeForces 522D Closest Equals 树状数组
题意: 给出一个序列\(A\),有若干询问. 每次询问某个区间中值相等且距离最短的两个数,输出该距离,没有则输出-1. 分析: 令\(pre_i = max\{j| A_j = A_i, j < ...
- python 发送 get post请求
GET请求: python2.7: import urllib,urllib2 url='http://192.168.199.1:8000/mainsugar/loginGET/' textmod ...
- laravel5.5事件系统
目录 1 注册事件和监听器 2 定义事件 3 定义监听器 4 分发事件 更多使用方法 1. 可以手动注册事件 2. 事件监听器中调用队列 3.事件订阅者 1 注册事件和监听器 1.修改EventSer ...
- python学习笔记十:异常
一.语法 #!/usr/bin/python filename='hello' #try except finally demo try: open('abc.txt') print hello ex ...
- wget下载https文件,服务器可以虚拟机中不行的问题
用wget下载一个图片资源(https协议),在服务器上可以,但在本机的虚拟机中卡在下面这里了: [root@localhost ~]# wget 'https://gp1.wac.edgecastc ...
- 在SqlServer中通过SQL语句实现树状查询
CREATE PROCEDURE [dbo].[GetTree] @Id int AS BEGIN with cte as ( as lvl from Entity where Id = @Id un ...
- Kotlin中when表达式的使用:超强的switch(KAD 13)
作者:Antonio Leiva 时间:Feb 23, 2017 原文链接:https://antonioleiva.com/when-expression-kotlin/ 在Java(特别是Java ...
- eclipse集成python(Pydev插件安装)
1.下载PyDev的压缩包,解压后会有features和plugins两个文件夹,将两个文件夹的内容拷贝到eclipse对应的文件夹中,重新启动eclipse 2.配置python 2.1打开ecli ...
- Qt Creator : Read an image from resources
最近两周碰到的一个问题是: opencv无法读取qt中的资源文件. 参考网址:https://stackoverflow.com/questions/45233559/qt-creator-read- ...
- jquery validate 使用示范
最近应公司要求做了一个jquery的示例文件,包括:模态窗口怎么实现:jquery validate下的校验:怎么做图片特效:怎么实现异步操作:实现图片上传剪切效果等很多特效: 这里把jquery校验 ...