如何得知当前鼠标已经不在窗口内?
在单文档程序中,当鼠标移出文档区域时,如何得知该信息? 比如移了滑动条上或工具条上?
请各位大侠多多指教!!!
[解决办法]
响应WM_MOUSELEAVE消息,这个classwizard不支持,要手动加入。在头文件加入消息响应函数的声明和监控变量
BOOL m_bMouseTracking;//在构造函数中将其初始化为FASLE
afx_msg LRESULT OnMouseLeave(WPARAM wParam,LPARAM lParam);
在源文件中加入消息映射
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
加入WM_MOUSEMOVE消息响应,然后在OnMouseMove函数中加入鼠标事件监视器,如下
if(!m_bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize=sizeof(TRACKMOUSEEVENT);
//监控鼠标离开
tme.dwFlags=TME_LEAVE;
tme.hwndTrack=this-> m_hWnd;
if(::_TrackMouseEvent(&tme))
{
m_bMouseTracking=TRUE;
}
}
最后加入WM_MOUSELEAVE的消息响应函数定义即可
LRESULT CXXXX::OnMouseLeave(WPARAM wParam,LPARAM lParam)
{
m_bMouseTracking=FALSE;
///////////something when mouse leave/////////////////
return TRUE;
}