【发布时间】:2010-02-17 18:40:44
【问题描述】:
在我的 Win32 应用程序中,当我按住鼠标左键并快速将鼠标指针移出窗口时,我没有收到 WM_MOUSELEAVE 消息。但是如果我按住鼠标左键,从窗口内部开始,慢慢地移过窗口边缘,它会生成一个 WM_MOUSELEAVE。
如果我不按住鼠标左键,无论鼠标指针移出窗口多快,每次都会收到 WM_MOUSELEAVE 消息。
有什么区别?我该怎么做才能正确处理这两种情况?
编辑:如果我左键单击并按住,移出窗口,然后松开鼠标左键,我会收到 WM_MOUSELEAVE 消息。但为时已晚。
【问题讨论】:
-
你什么时候打电话给
TrackMouseEvent?会不会是您遇到了延迟,并且您设法在调用TrackMouseEvent之前离开窗口? -
每当客户区有鼠标移动时,我都会执行 TrackMouseEvent。