处理WM_MOUSEMOVE WM_MOUSELEAVE WM_MOUSEHOVER

先添加消息映射,在头文件中
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
在源文件中
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
ON_MESSAGE(WM_MOUSEHOVER, OnMouseHover)


为类添加WM_MOUSEMOVE WM_MOUSELEAVE WM_MOUSEHOVER消息
在类中定义成员变量如下:
BOOLEAN m_bTracking; //代表是否设置了追踪鼠标事件
BOOLEAN m_bHover;            // 代表是否停留在控件上
并在构造函数中初始化为 FALSE


在OnMouseMove()中加入如下代码
if (!m_bTracking)
{
TRACKMOUSEEVENT Tme;
Tme.cbSize = sizeof(Tme);
Tme.hwndTrack = GetSafeHwnd(); //整个这段代码就是设置鼠标消息追踪
Tme.dwFlags = TME_LEAVE|TME_HOVER; //追踪消息可以设置TME_LEAVE|TME_HOVER


Tme.dwHoverTime = 1;
if (_TrackMouseEvent(&Tme))
m_bTracking=TRUE;
}


OnMouseHover()
{
m_bHover=TRUE;
。。。。。。。
}
OnMouseLeave()
{
m_bTracking=m_bHover=FALSE;
。。。。。。。。
}




                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值