从网上找来的资料
说用TRACKMOUSEEVENT还有MouseLeave来响应鼠标离开窗口的消息
但是不管用,用SetCapture();总是有副作用
不知道该怎么办了OnMouseMove的代码:
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE|TME_HOVER;
tme.dwHoverTime = 1;
MouseActive = _TrackMouseEvent(&tme); OnMouseLeave:
AfxMessageBox(L"te");我的_WIN_预定义宏都是0x0600
说用TRACKMOUSEEVENT还有MouseLeave来响应鼠标离开窗口的消息
但是不管用,用SetCapture();总是有副作用
不知道该怎么办了OnMouseMove的代码:
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE|TME_HOVER;
tme.dwHoverTime = 1;
MouseActive = _TrackMouseEvent(&tme); OnMouseLeave:
AfxMessageBox(L"te");我的_WIN_预定义宏都是0x0600
加在OnMouseMove第一行试试
WM_MOUSEHOVER消息处理以后,需要再次调用_TrackMouseEvent
{
is_mouse_in = true;
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE;
tme.dwHoverTime = 50;
MouseActive = _TrackMouseEvent(&tme);
PostMessage(WM_MOUSEHOVER);
}通常是这么写的。