码迷,mamicode.com
首页 > 其他好文 > 详细

WM_MOUSEHOVER和WM_MOUSELEAVE消息的触发

时间:2015-06-04 13:51:38      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu 转载请标明来源)

 

参考: http://blog.csdn.net/s_52588/article/details/8230053

 

WM_MOUSEHOVERWM_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 转载请标明来源)

 

WM_MOUSEHOVER和WM_MOUSELEAVE消息的触发

标签:

原文地址:http://blog.csdn.net/chunyexiyu/article/details/46359267

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!