CTreeCtrl点击获得选中项
相应TVN_SELCHANGED可以得到选中的项,在相应函数内如下:
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
CString strSelItemTest = m_mapTreeCtrl.GetItemText(pNMTreeView->itemNew.hItem);
可以得到选中的项,但这里有一个问题,就是我点击的选中项没有改变时,就触发不了这个函数。
所以如果每次点击到项上都要得到选中项,相应左右健单双击比较好NM_CLICK NM_RCLICK NM_DBCLICK NM_RDBCLICK
但是在这几个相应函数里使用
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
CString strSelItemTest = m_mapTreeCtrl.GetItemText(pNMTreeView->itemNew.hItem);
得到的是上次选中的项,而不是当前选中项
可以这样解决:
在这几个相应函数里:
DWORD dwpos = GetMessagePos();
TVHITTESTINFO ht = {0};
ht.pt.x = GET_X_LPARAM(dwpos);
ht.pt.y = GET_Y_LPARAM(dwpos);
::MapWindowPoints(HWND_DESKTOP,pNMHDR->hwndFrom,&ht.pt,1); //把屏幕坐标转换成控件坐标
TreeView_HitTest(pNMHDR->hwndFrom,&ht); //确定点击的是哪一项
CString strSelItemTest = m_mapTreeCtrl.GetItemText(ht.hItem);
m_mapTreeCtrl.Select(ht.hItem, TVGN_CARET);
CTreeCtrl点击获得选中项的更多相关文章
- ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件
原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...
- wpf中ListBox的选中项与ComboBox间的绑定
产品类: public class Product:NotificationObject { private int productID; public int ProductID { get { r ...
- Winform下的Combox根据值来选中项
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<DictionaryEntry>类型的(System.Collec ...
- jquery点击复选框触发事件给input赋值
体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...
- C#遍历得到checkboxlist选中值和设置选中项
得到选中项的value值并拼接成一个字符串返回 public string GetChecked(CheckBoxList checkList, string separator) { string ...
- angularjs ng-select ng-options 默认选中项.
<!DOCTYPE html> <html ng-app="myApp"> <head> <meta charset="utf- ...
- Jquery设置select控件指定text的值为选中项
<select name="streetid" id="streetid"> <option value="4">北 ...
- extjs 点击复选框在表格中增加相关信息行
功能效果:点击复选框在表格中自动增加相关信息行,复选框取消则表格中内容自动删除 初始效果大概是这样~~~~~ // 定义初始 存放表格数据 var gridItems = []; //省份复选框 va ...
- 使用val()方法设置表单中的默认选中项
有时候我们展示给用户的表单中的checkbox,radio,selec等标签的一些项是默认选中的.比方:当用户改动文章的时候,假设相应的栏目为下拉框的话,那么它的默认选中值应该是原来的栏目位置. 能够 ...
随机推荐
- ORACLE告警日志
告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file).告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称.数据库告警日志是按时间 ...
- 【最大点独立集】【poj1419】【Graph Coloring】
题意: 最多能选取多少点,没有边相连. 解法: 取反图,求最大团 代码: #include<cstdio> #include<cstring> #include<iost ...
- RDLC报表系列(四) 矩阵
继续接上一篇的内容,本文主要是讲矩阵的内容 用到的数据源如下: DataTable dt = new DataTable(); dt.Columns.Add("FiscalYear" ...
- 关于在R中无法引用自己的xml文件
查看import 是否 import android.R 有的话 删掉
- int指令(软件中断指令)
INT(软件中断指令)是CALL指令的一种特殊形式.call指令调用调用的子程序是用户程序的一部分,而INT指令调用的操作系统提供的子程序或者其他特殊的子程序. 中断服务子程序和标准过程的最大区别是 ...
- SharePreferences类的使用
简述:以key-value键值对的方式将数据保存到Android自身定义的文件夹(/data/data/<package name>/shared_prefs root才可见的文件夹)中 ...
- php 截取字符串
/** * 方法库-截取字符串-[该函数作者未知] * @param string $string 字符串 * @param int $length 字符长度 * @param string $dot ...
- Generator & yield write in sync way
Generator & yield write in sync way var p = new Promise(function(resolve, reject){ setTimeout(fu ...
- PixelFormat 图像颜色的数据格式
PixelFormat: (指定图像中每个像素的颜色数据的格式) Delphi 微软 ...
- 从ASP.NET传递参数给水晶报表
原文 http://www.cnblogs.com/insus/p/3281114.html 上次Insus.NET有简单写了一篇文章<Visual Studio 2012使用水晶报表Cryst ...