【发布时间】:2011-10-27 02:50:19
【问题描述】:
我通过 win api 创建了一个小窗口。此窗口是另一个线程的窗口的子窗口。
我想让用户通过按下右键移动鼠标来移动我的窗口。当我以正常速度移动鼠标时,我的窗口移动没有问题。但是当我快速移动时,窗口收到了一些非常奇怪的消息。例如,
P WM_MOUSEMOVE fwKeys:MK_BUTTON xPos:-32703 yPos:9
如您所见,xPos 下降到 -32000。它几乎在我快速移动鼠标后立即发生。我不知道windows如何向我发送这样的消息。
为什么可以发送该消息以及如何修复它?
我正在使用 SetCaption 函数,因此即使鼠标停留在外面,我的窗口也会收到消息。
更新。解决了。问题出在我固有的数学上。从 lParam 获取 hi 和 lowword 是不合适的。
【问题讨论】:
-
xPos是 16 位值,您可能在从lParam解码xPos时出现数学溢出。 -
但是我在 Spy++ 中看到的那条消息。
-
所以你可能正在做一些特别的事情来用右键移动窗口?这可能会导致发送错误消息。