有两种方法了.
第一种就是用WM_TIMER,定时检查鼠标在什么地方.但效率比较低,不建议采用.
第二种就是用TrackMouseEvent.建议使用.具体用法参考MSDN
TRACKMOUSEEVENT event ;
event.cbSize = sizeof( event );
event.dwFlags = TME_LEAVE ;
event.dwHoverTime = 0 ;
event.hwndTrack = GetSafeHwnd() ;
VERIFY (_TrackMouseEvent( &event )) ;
注意添加WM_MOUSELEAVE消息处理
LRESULT CStatList::OnMouseLeave( WPARAM wParam , LPARAM lParam )
{
rreturn 0 ;
}
ON_MESSAGE( WM_MOUSELEAVE , OnMouseLeave )
afx_msg LRESULT OnMouseLeave( WPARAM wParam , LPARAM lParam ) ;