开发者社区> 飞天小橘子> 正文

树结构鼠标消息响应事件

简介: 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根据鼠标的位置获取当前点击项!

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

相关文章
QT——键盘事件(捕获按键事件)
QT——键盘事件(捕获按键事件)
123 0
使用SendInput模拟键盘和鼠标动作
使用SendInput模拟键盘和鼠标动作
203 0
14、事件类型(鼠标事件、键盘事件、触屏事件)
14、事件类型(鼠标事件、键盘事件、触屏事件)
49 0
Qt | 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent
学习使用Qt的鼠标事件和滚轮事件。
350 0
Windows程序设计——窗口键盘消息滚动事件
Windows程序设计——窗口键盘消息滚动事件
136 0
C#(二十八)之C#鼠标事件、键盘事件
鼠标事件分为两种:EventArgs、MouseEventArgs。 键盘事件:KeyEventArgs、KeyPressEventArgs、KeyPress、KeyDown、KeyUp。
208 0
鼠标滚轮消息的捕捉
鼠标滚轮消息的捕捉
626 0
WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
原文:WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件 在WPF中,只有鼠标位置在某个控件上的时候才会触发该控件的鼠标事件。例如,有两个控件都注册了MouseDown和MouseUp事件,在控件1上按下鼠标,不要放开,移动到控件2上再放开。
2006 0
+关注
飞天小橘子
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载