树结构鼠标消息响应事件

简介: 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 根据鼠标的位置获取当前点击项!
相关文章
|
10月前
|
JavaScript 前端开发
鼠标移出和鼠标移入事件
鼠标移出和鼠标移入事件
63 1
|
10月前
页面监听键盘事件
页面监听键盘事件
|
存储 安全 Windows
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
Win32子窗口创建,子窗口回调函数,消息堆栈,逆向定位子窗口消息处理过程
|
安全 JavaScript API
【笔记】用 window.postMessage 进行窗口之间的隐式信息传递
用 window.postMessage 进行窗口之间的隐式信息传递
376 0
|
JavaScript
13、JS事件(事件绑定、事件流、阻止事件冒泡、取消元素默认行为)
13、JS事件(事件绑定、事件流、阻止事件冒泡、取消元素默认行为)
135 0
|
Windows
Windows程序设计——窗口键盘消息滚动事件
Windows程序设计——窗口键盘消息滚动事件
300 0
|
JavaScript
页面回发后,让页面自动滚动到指定位置的一种简单的方法
最近某客户做实施,顺便完善一下程序。突然找到了一个老问题的解决方法。 就是当用户按一个按钮后,希望回发后的页面滚到一个指定的位置,而不是页面的开头部分。以前看过一篇文章介绍了一种方法,当时也没有理解,也没有记录下来,现在又遇到了这个问题,还是自己想一个简单点的方法吧。
962 0
|
.NET C# 开发框架
WPF的路由事件、冒泡事件、隧道事件(预览事件)
原文:WPF的路由事件、冒泡事件、隧道事件(预览事件) 本文摘要: 1:什么是路由事件; 2:中断事件路由; 3:自定义路由事件; 4:为什么需要自定义路由事件; 5:什么是冒泡事件和预览事件(隧道事件); 1:什么是路由事件     WPF中的事件为路由事件,所谓路由事件,MSDN定义如下:     功能定义:路由事件是一种可以针对元素树中的多个侦听器(而不是仅针对引发该事件的对象)调用处理程序的事件。
1839 0