使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
来源:互联网 发布:工大高新 人工智能 编辑:程序博客网 时间:2024/05/16 05:42
默认情况下,窗口是不响应WM_MOUSELEAVE和WM_MOUSEHOVER消息的,所以要使用_TrackMouseEvent函数来激活这两个消息。调用这个函数后,当鼠标在指定窗口上停留超过一定时间或离开窗口后,该函数会Post这两个消息到指定窗口。
使用方法:
1.在窗口类中定义一个变量来标识是否追踪当前鼠标状态,之所以要这样定义是要避免鼠标已经在窗体之上时,一移动鼠标就不断重复产生WM_MOUSEHOVER。
BOOL _bMouseTrack=TRUE;
2.在OnMouseMove中调用_TrackMouseEvent函数
if (_bMouseTrack) //若允许追踪,则。
{
TRACKMOUSEEVENT csTME;
csTME.cbSize = sizeof(csTME);
csTME.dwFlags = TME_LEAVE|TME_HOVER;
csTME.hwndTrack = m_hWnd;//指定要追踪的窗口
csTME.dwHoverTime = 10; //鼠标在按钮上停留超过10ms,才认为状态为HOVER
::_TrackMouseEvent(&csTME); //开启Windows的WM_MOUSELEAVE,WM_MOUSEHOVER事件支持
_bMouseTrack=FALSE; //若已经追踪,则停止追踪
}
3.在OnMouseLeave中再次允许追踪鼠标状态
_bMouseTrack=TRUE;
4.备注:这两个消息的映射要自己写
ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
使用方法:
1.在窗口类中定义一个变量来标识是否追踪当前鼠标状态,之所以要这样定义是要避免鼠标已经在窗体之上时,一移动鼠标就不断重复产生WM_MOUSEHOVER。
BOOL _bMouseTrack=TRUE;
2.在OnMouseMove中调用_TrackMouseEvent函数
if (_bMouseTrack) //若允许追踪,则。
{
TRACKMOUSEEVENT csTME;
csTME.cbSize = sizeof(csTME);
csTME.dwFlags = TME_LEAVE|TME_HOVER;
csTME.hwndTrack = m_hWnd;//指定要追踪的窗口
csTME.dwHoverTime = 10; //鼠标在按钮上停留超过10ms,才认为状态为HOVER
::_TrackMouseEvent(&csTME); //开启Windows的WM_MOUSELEAVE,WM_MOUSEHOVER事件支持
_bMouseTrack=FALSE; //若已经追踪,则停止追踪
}
3.在OnMouseLeave中再次允许追踪鼠标状态
_bMouseTrack=TRUE;
4.备注:这两个消息的映射要自己写
ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
- 使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
- 使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
- _TrackMouseEvent 响应 WM_MOUSELEAVE 和 WM_MOUSEHOVER 消息
- WM_MOUSELEAVE和WM_MOUSEHOVER消息
- WM_MOUSELEAVE和WM_MOUSEHOVER使用
- WM_MOUSELEAVE和WM_MOUSEHOVER使用
- 让窗口捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息
- 关于MFC中WM_MOUSEHOVER和WM_MOUSELEAVE消息的使用
- 解决WndProc无法捕获捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息的问题
- WM_MOUSEHOVER和WM_MOUSELEAVE消息的触发
- OnMouseHover()和OnMouseLeave()(让窗口捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息)
- OnMouseHover()和OnMouseLeave()(让窗口捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息)
- OnMouseHover()和OnMouseLeave()(让窗口捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息)
- 响应WM_MOUSEHOVER和WM_MOUSELEAVE
- 处理WM_MOUSELEAVE和WM_MOUSEHOVER
- WM_MOUSEHOVER 和 WM_MOUSELEAVE
- 捕捉鼠标停留WM_MOUSEHOVER和离开WM_MOUSELEAVE消息
- 捕捉鼠标停留WM_MOUSEHOVER和离开WM_MOUSELEAVE消息
- java session HttpSessionListener、HttpSessionBindingListener使用区别,实现在线人数统计以及踢出用户
- 第二天
- Linux下非Oracle数据库安装用户执行OCCI程序
- 设置修改CentOS系统时区
- 好好学一遍JavaScript 笔记(一)——基础中的基础
- 使用_TrackMouseEvent捕获WM_MOUSELEAVE和WM_MOUSEHOVER消息
- ModifyStyle()调用不起作用
- Android中不使用布局文件,java代码动态创建布局及控件
- 多线程的概念
- url 中 & 、 ? 、 # 的作用
- 深入iOS 5:解析两大隐藏特性
- 为什么编程是独一无二的职业
- rrdtool
- JAVA static的作用