捕获鼠标离开对话框的事件
方法一:使用_TrackMouseEvent函数处理,对应的代码如下:
BOOL CLRCDlg::PreTranslateMessage(MSG* pMsg)
{
static BOOL bMouseTracking = FALSE;
if(pMsg->message==WM_MOUSELEAVE)
{
bMouseTracking= FALSE;
AfxMessageBox("鼠标已离开对话框");
}
else if(pMsg->message==WM_MOUSEMOVE)
{
if(!bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize=sizeof(tme);
tme.dwFlags=TME_HOVER | TME_LEAVE;
tme.dwHoverTime=50;
tme.hwndTrack=m_hWnd;
bMouseTracking = _TrackMouseEvent(&tme);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
BOOL CLRCDlg::PreTranslateMessage(MSG* pMsg)
{
CRect rc;
GetWindowRect(&rc);
if(rc.PtInRect(pMsg->pt))
{
}
else
{
AfxMessageBox("鼠标已离开对话框");
}
return CDialog::PreTranslateMessage(pMsg);
}