我一直在使用XNA Mouse类和我已经能够让鼠标移动每帧鼠标重置每次屏幕中心的唯一途径然后在将其置回中心之前测量位移。这看起来很糟糕,而且我的鼠标支持5700dpi的分辨率,当xna为屏幕位置返回一个整数时,我大多肯定没有获得这个分辨率。获取原始鼠标移动(不是屏幕上的位置)
1
A
回答
1
如果使用Mouse.SetPosition
和测量偏移不为你工作,你需要使用比其他XNA的API。
要使用的API是WM_INPUT
。这是您可以通过挂钩消息循环接收的消息。 (注:XNA的API相当于WM_MOUSEMOVE
,所以不要使用)
This MSDN page有关于API选择一些介绍细节,并且有一些示例代码(C++),将其用于鼠标输入。
如果你不熟悉Windows的消息循环,也许就Wikipedia启动。它基本上是一个本地(C/C++)API,所以你必须做一些工作才能在C#中使用它。
我没有任何代码方便我自己做,但here is a link有人挂钩的消息循环,以便他们可以处理WM_CHAR
,这也许是一个很好的起点。
0
我最近从MouseMove事件畸形交换掉自己,发现这是很有帮助的。然而,看起来SharpDX已经将其大部分包装在RawInput模块中,所以这对我来说已经足够好了。除此之外,可以通过重写WndProc来挂钩Windows.System.Forms的消息循环; WM_INPUT是消息ID 0x00FF;在.NET中声明工会很棘手,需要[StructLayout]属性。
相关问题
- 1. C#如何获取屏幕上特定点的坐标。 (不是鼠标位置)
- 2. 在屏幕上移动鼠标光标
- 3. 检查屏幕上的鼠标位置
- 4. 屏幕上的鼠标位置
- 5. 鼠标在屏幕上的Java位置
- 6. 如何在WPF屏幕上获取鼠标位置?
- 7. 当框架在屏幕上移动时,鼠标不保持它的位置
- 8. Qt 5,获得鼠标在屏幕上的位置
- 9. 如何在Qt屏幕上获得鼠标位置?
- 10. 如何拖动屏幕上的按钮并将翻译动画从当前位置移动到原始位置?
- 11. SlidingDrawer移动到原始屏幕
- 12. iPhone4上的初始屏幕移位
- 13. 获取鼠标屏幕坐标点击
- 14. 将鼠标转换为屏幕位置
- 15. 在Android上获取主屏幕位置
- 16. 在主屏幕上获取appwidget位置?
- 17. 在屏幕上获取按钮位置
- 18. 如何通过鼠标移动事件获取摄像头位置并转换为three.js中的屏幕坐标?
- 19. 试图在屏幕上打印出鼠标x和y位置 - 获取0,0
- 20. 获取鼠标与鼠标移动的坐标上的路线
- 21. OSX/Cocoa:获取屏幕上的Dockless图标的绝对位置
- 22. 在flex中的屏幕上的鼠标位置
- 23. 在鼠标移动中获取控件的位置
- 24. 在window.resize上获取鼠标位置
- 25. 在Flex Panel上获取鼠标位置
- 26. OpenGl获取鼠标位置
- 27. 获取鼠标位置
- 28. onMouseMove获取鼠标位置
- 29. 使用Java检测鼠标在屏幕上的任意位置
- 30. SharpDX如何让鼠标在游戏屏幕上的位置
可能重复? http://stackoverflow.com/questions/2150448/vb-net-mouse-coordinates – Rob
不,这正是我不想要什么? –