gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 10:47:24 27 4
gpt4 key购买 nike

我正在尝试使用 SetCursorPos 在光标到达屏幕边缘时移动光标位置(对于 scrubby 控件);标准的“跟踪直到边缘被击中,将光标移动到屏幕中间”。

问题是 Windows 在收到鼠标事件后立即将光标位置重置回原来的位置。

出于调试目的,我使用以下代码制作了一个测试应用程序: http://msdn.microsoft.com/en-us/library/windows/desktop/ms648380(v=vs.85).aspx#_win32_Using_the_Keyboard_to_Move_the_Cursor

这向我展示了相同的行为:我使用鼠标将光标停在窗口的左上角(在"file"菜单的正下方),然后使用键盘将光标移到任意位置。但是当我触摸鼠标时,光标又回到了左上角。

这对我用鼠标刷的控件显然帮助不大。

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

谢谢!

最佳答案

使用 SetCursorPos 通常效果很好(即使使用它通常被认为是糟糕的风格。)不过,某些设备(例如 Wacom 数位板)会发送绝对位置。一旦设备发送新位置,光标就会跳回。如果是这种情况,您真的无能为力。

但是,我是否正确地假设您这样做是因为您正在尝试检测光标的速度?如果是这样,您可能应该使用不同的 API 来为您提供低级值,而根本不需要使用光标的位置。看看 DirectInput!

关于c++ - 我如何强制 Windows 在 SetCursorPos 之后忘记旧的鼠标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17664300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com