Mouse leave and hover message

来源:互联网 发布:知乎 横财命 编辑:程序博客网 时间:2024/04/26 11:19

普通情况下,窗体能接收到鼠标发出的消息包括:WM_LBUTTONDOWN,WM_LBUTTONUP,WM_LBUTTONDBLCLK,WM_MOUSEMOVE等。但这里面不包括鼠标的hover和leave消息。当需要用到鼠标的WM_MOUSEHOVER和WM_MOUSELEAVE消息的功能是,需要在WM_MOUSEMOVE函数中调用TrackMouseEvent函数,示例如下:

TRACKMOUSEEVENT tme;
 tme.cbSize =sizeof(TRACKMOUSEEVENT);
 tme.dwFlags = TME_LEAVE;// or TME_HOVER
 tme.dwHoverTime = 0;
 tme.hwndTrack =m_BtnLeft.m_hWnd;
 ::TrackMouseEvent(&tme);

该函数会向窗体发出leave或者hover信息,窗体可以使用对应函数处理来自该函数的消息。

这样就可以简单的跟踪鼠标的状态。