当鼠标停留在程序窗口一定时间后,会产生一个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添加消息映射:
ON_MESSAGE( WM_MOUSE

本文介绍了如何使MFC窗口能够捕获和响应WM_MOUSEHOVER和WM_MOUSELEAVE消息。通过在窗口类中添加特定代码,使用ON_MESSAGE进行消息映射,并在OnMouseMove函数中调用_TrackMouseEvent,可以实现窗口对这两个消息的捕获。注意,_TrackMouseEvent需要在OnMouseMove中重复调用来持续请求消息。
订阅专栏 解锁全文
605

被折叠的 条评论
为什么被折叠?



