获取 SharpDX 中相对于窗口的鼠标位置

Posted

技术标签:

【中文标题】获取 SharpDX 中相对于窗口的鼠标位置【英文标题】:Get Mouse Position in SharpDX relative to window 【发布时间】:2017-03-27 17:48:24 【问题描述】:

如何获取 C# 中光标相对于 im 所在窗口的位置? 我正在使用 SharpDX,我试过了

System.Drawing.Point loc = Cursor.Position;

System.Drawing.Point loc = Control.MousePosition;  

这给了我光标的绝对 X 和 Y 坐标(X:0 和 Y:0 位于屏幕的左上角,而不是我的窗口)。

是否在 SharpDX 中实施了一些措施来完成这项工作? 我在互联网上找不到任何对我有用的东西

【问题讨论】:

【参考方案1】:

假设您使用的是winform?如果是这样,请查找控件的鼠标事件。

如果您不使用 Visual Studio,则必须添加事件。控件示例可以在这里找到 -> https://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousemove(v=vs.110).aspx

据我回忆,Sharpdx 本身根本不处理鼠标。您需要了解鼠标在窗口内的移动领域,并转换为您需要的任何输入流。

【讨论】:

没有我在哪里说鼠标点击,我给你发送了表单的 mousemove 事件链接,它是一个控件,它就是你的表单。表单中的事件被触发,它通过对象 System.Windows.Forms.MouseEventArgs 中的鼠标当前位置。这具有当前控件中鼠标的 X 和 Y 坐标。

以上是关于获取 SharpDX 中相对于窗口的鼠标位置的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中获取鼠标相对于窗口视口的位置?

实现搜索框跟随鼠标悬停菜单功能

JavaScript 中一些概念理解 :clientXclientYoffsetXoffsetYscreenXscreenY

client offset screen 的区别

client offset screen 的区别

Qt判断鼠标在控件上