当鼠标停留在程序窗口一定时间后,会产生一个WM_MOUSEHOVER消息;当鼠标离开程序窗口后,会产生一个WM_MOUSELEAVE消息。那如何才能使窗口响应这两个消息呢?按下面的步骤,即可让指定的窗口能捕获并响应WM_MOUSEHOVER和WM_MOUSELEAVE消息了:
1、在窗口类的头文件中添加:
afx_msg void OnMouseHover();
afx_msg void OnMouseLeave();
BOOL m_bTrackLeave; // 捕获设置标记
2、在窗口类的cpp文件中添加:
void CXXXWnd::OnMouseHover()
{
MessageBox( "鼠标已进入 ");
m_bTrackLeave = FALSE;
}
void CXXXWnd::OnMouseLeave()
{
MessageBox( "鼠标已离开 ");
m_bTrackLeave = FALSE;
}
3、用ON_MESSAGE添加消息映射: