WM_MOUSEHOVER和WM_MOUSELEAVE消息的触发
2015-06-04 12:55
288 查看
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)
参考: http://blog.csdn.net/s_52588/article/details/8230053
WM_MOUSEHOVER和WM_MOUSELEAVE消息,可以用来实现,当鼠标放在/离开某个窗体或窗体组件一段时间时,触发一系列的操作
例如:
Tooltips的实现原理,就是和这个类似的,当鼠标放在button上一小会时,就会弹出提示prompt。
例如:
QQ的窗体,当我们鼠标移动到 QQ图标时,会弹出提示,而当我们鼠标移开时,这些提示就消失了,应该也是类似原理。,
但这两个消息缺省是不会被触发的,需要我们在OnMouseMove中进行触发处理,
触发后,就可以在 条件(触发条件 & 时间要求) 达到后,发送 WM_MOUSEHOVER/WM_MOUSELEAVE消息。
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)
参考: http://blog.csdn.net/s_52588/article/details/8230053
WM_MOUSEHOVER和WM_MOUSELEAVE消息,可以用来实现,当鼠标放在/离开某个窗体或窗体组件一段时间时,触发一系列的操作
例如:
Tooltips的实现原理,就是和这个类似的,当鼠标放在button上一小会时,就会弹出提示prompt。
例如:
QQ的窗体,当我们鼠标移动到 QQ图标时,会弹出提示,而当我们鼠标移开时,这些提示就消失了,应该也是类似原理。,
但这两个消息缺省是不会被触发的,需要我们在OnMouseMove中进行触发处理,
if (!m_bTracking) { // 鼠标移入窗时,请求WM_MOUSEHOVER和WM_MOUSELEAVE消息 TRACKMOUSEEVENT tme; //鼠标跟踪事件定义 tme.cbSize = sizeof(tme); tme.hwndTrack = m_hWnd; //跟踪窗体,预计也可以用于跟踪窗体内的组件 tme.dwFlags = TME_LEAVE|TME_HOVER; //触发两种消息类型: TME_LEAVE 和 TME_HOVER tme.dwHoverTime = 1; //触发条件(时间长度要求) m_bTracking = _TrackMouseEvent(&tme); //开始跟踪 } |
触发后,就可以在 条件(触发条件 & 时间要求) 达到后,发送 WM_MOUSEHOVER/WM_MOUSELEAVE消息。
(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)
相关文章推荐
- hdu 2052 Picture(java)
- 一段神奇的代码
- 5.19
- WCF4.0 –- RESTful WCF Services
- 对“搜狗输入法”的评价
- LBP代码资源整理收集
- CImage封装gdiplus的初始化和引用计数
- hdu 2051 Bitset (java)
- 5、vsphere6-ESXI主机的安装及配置
- Access denied for user 'root'@'localhost' (using password: YES)解决方法
- HTML学习笔记-v1.2
- Javascript实现import动态导入文件方法
- javascript 将字符串转化成json对象
- Spring学习笔记(二)IOC注入方式
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- 5.18
- hdu 2049 不容易系列之(4)——考新郎
- 《自己动手写框架2》:用200行的DBF解析器来展示良好架构设计
- POJ 3281 牛双选问题
- DM9000裸机驱动及ARP实现