开发者社区> 飞天小橘子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

树结构鼠标消息响应事件

简介: 1、定义树结构的窗口ID /*#define FiletreeID 101*/ const int FiletreeID =101; 2、在映射函数中添加消息映射 ...
+关注继续查看
1、定义树结构的窗口ID
/*#define FiletreeID 101*/
const int FiletreeID =101;
2、在映射函数中添加消息映射
ON_NOTIFY(NM_CLICK, FiletreeID, OnNMClickTree)
3、在头文件中声明函数
afx_msg void OnNMClickTree(NMHDR* pNMHDR,LRESULT* pRsult);
4、函数具体实现
void CFileView::OnNMClickTree( NMHDR* /*pNMHDR*/,LRESULT* pRsult )
{
DWORD dwPos = ::GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos));
m_wndFileView.ScreenToClient(&point);
UINT uFlags=0;
HTREEITEM hItem=m_wndFileView.HitTest(point,&uFlags);
/*HTREEITEM hItem =m_wndFileView.GetSelectedItem()*/
/* m_wndFileView.SelectItem(hItem);*/ //添加上这个代码后多选功能失效
}
注意:NM_CLICK点击消息结束之后才能更新hItem的选择,表现为点击事件的滞后性,所以要通过HitTest根据鼠标的位置获取当前点击项!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
14、事件类型(鼠标事件、键盘事件、触屏事件)
14、事件类型(鼠标事件、键盘事件、触屏事件)
0 0
Windows程序设计——窗口键盘消息滚动事件
Windows程序设计——窗口键盘消息滚动事件
0 0
C#(二十八)之C#鼠标事件、键盘事件
鼠标事件分为两种:EventArgs、MouseEventArgs。 键盘事件:KeyEventArgs、KeyPressEventArgs、KeyPress、KeyDown、KeyUp。
0 0
WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
原文:WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件 在WPF中,只有鼠标位置在某个控件上的时候才会触发该控件的鼠标事件。例如,有两个控件都注册了MouseDown和MouseUp事件,在控件1上按下鼠标,不要放开,移动到控件2上再放开。
749 0
在winform中捕获上下左右键等控制键的按键事件
最近一直在做表单设计器,今天有一个需求就是:通过上下左右键来控制表单上的控件移动。但是控件的KeyDown捕获不到上下左右键,KeyUp事件倒是可以捕获到,但你通过上下左右键移动控件位置,不能点一下才移动一下啊,太不人性了。上网找了半天发现了这么一个方法: 重写Control的ProcessDialogKey方法,此处以winform表单为例: protected override boo
955 0
MFC 单文档中动态添加菜单项和响应菜单事件
新建一个单文档程序 在查看菜单项中增加两个子菜单,分别为隐藏工具栏(ID_HIDE),新建菜单(ID_NEWMENU) 在Resource.h中增加一个ID_NEWMENU宏 #define ID_NEWMENU        WM_USER+101   操作工具栏和状态栏 使用Ge...
1331 0
鼠标 事件
引用:http://www.java3z.com/cwbwebhome/article/article9/ht43.html 鼠标事件的种类: click:用户单击左键时发生(单击右键不会发生)。如果焦点在一个按钮上,并按下回车键,也会触发该事件。
483 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载