我正在尝试使用SetCursorPos移动光标位置,当它到达屏幕边缘时(对于一个套接控制);标准的“直到边缘被击中的轨迹,将光标移动到屏幕中间”的东西。
问题是Windows一旦发现鼠标事件,就会将光标位置重置回原来的位置。
出于调试目的,我使用以下代码创建了一个测试应用程序: http://msdn.microsoft.com/en-us/library/windows/desktop/ms648380(v=vs.85).aspx#_win32_Using_the_Keyboard_to_Move_the_Cursor
这向我展示了相同的行为:我使用鼠标将光标停在窗口的左上角(文件菜单右下方)并使用键盘将光标移动到任何地方。但是只要我触摸鼠标,光标就会回到左上角。
这显然对我使用鼠标擦除的控件没有帮助。
如何让Windows接受我的SetCursorPos位置为真理?
谢谢!
答案 0 :(得分:0)
使用SetCursorPos通常可以正常工作(即使使用它通常被认为是糟糕的风格。)但是,某些设备(如Wacom平板电脑)会发送绝对位置。一旦设备发送新位置,光标就会跳回。如果是这种情况,你真的无法帮助。
但是,我是否正确地假设您正在执行此操作,因为您正在尝试检测光标的速度?如果是这样,你应该使用一个不同的API来提供低级值,而根本不需要使用光标的位置。看看DirectInput!