如何强制Windows在SetCursorPos之后忘记旧的鼠标位置?

我试图使用SetCursorPos来移动光标的位置,当它碰到屏幕的边缘(对于一个scrubby控制); 标准“跟踪到边缘被击中,移动光标到屏幕中间”的东西。

问题是,Windows一旦获得鼠标事件,就会将光标位置重置回原来的位置。

为了进行debugging,我使用以下代码制作了testing应用程序: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms648380(v=vs.85).aspx#_win32_Using_the_Keyboard_to_Move_the_Cursor

这给我看到了相同的行为:我使用鼠标将光标停放在窗口的左上angular(位于“文件”菜单的右下angular),并使用键盘将光标移到任何位置。 但只要我触摸鼠标,光标就会回到左上angular。

这显然不足以帮助我使用鼠标进行擦洗的控制。

我如何让Windows接受我的SetCursorPos位置为真?

谢谢!

使用SetCursorPos通常工作正常(即使使用它通常被认为是不好的风格)。但是,一些设备,如Wacom平板电脑发送绝对位置。 一旦设备发送一个新的位置,光标将跳回。 如果是这样的话,你真的不能帮助。

不过,我是否正确地假设你正在做这个,因为你试图检测光标的速度? 如果是这样的话,你可能应该使用一个不同的API来为你提供底层的值,而不需要使用游标的位置。 看看DirectInput!