TRACKMOUSEEVENT //怎么有时收到鼠标离开的消息呢?
OnMouseMove每次都能收到;可是OnMouseLeave自定义消息收不到呀
单文档的子对话框!!!是这个原因????
还与系统的鼠标离开消息有什么区别吗????
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
void CFloatFrm::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if(m_Frm.PtInRect(point))
{
//if(m_TimerPopID!=0)
//KillTimer(m_TimerPopID);
//if(m_TimerPopID!=0)
//KillTimer(m_TimerbackID);
//if(m_TimerPopID!=0)
//KillTimer(m_TimerShowID);
}
if (!m_bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE ;
_TrackMouseEvent(&tme);
m_bMouseTracking = true;
}
CDialog::OnMouseMove(nFlags, point);
}
LRESULT CFloatFrm::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
CPoint point(0,0);
GetCursorPos(&point);
if (!m_Frm.PtInRect(point))
{
m_dwStartTime = GetTickCount();
//鼠标离开窗口时开始计时,到一定时间后自动隐藏
m_TimerShowID = SetTimer(10);
m_bMouseTracking = false;
}
return TRUE;
}