【发布时间】:2011-12-09 08:27:35
【问题描述】:
我正在创建一个具有 1 到多个 OpenGL 视图表单的 GUI。现在基础工作正常了,我有一个查看器表单列表,每个表单都在其设计器类中封装了一个 OpenTK.GLControl 成员。
我需要获取窗口中的实际光标位置,我将图标拖到该窗口上,以便当我释放左键单击时,它会将其放到该位置的 GL 窗口中。这与它实际需要做的事情相比有所简化,但只是第一步,一旦发生这种情况,其余的就很容易了。
现在,当我使用 GLControl.MousePosition.X、GLControl.MousePosition.Y 来获取光标位置时,它实际上给了我屏幕位置,而不是窗口中的位置。不幸的是,这对于我需要做的事情并不是特别有用。
我查看了 OpenTK.GameWindow.Mouse,这似乎在我的小测试项目中运行良好。它得到光标在窗口中的确切位置。但是,我不能在这个项目中使用游戏窗口,因为游戏窗口没有一些 GLcontrol 具有的对 GUI 形式更友好的东西,例如 Dock、TabIndex、Paint 和其他与 GUI 相关的成员。 (或者至少我似乎找不到任何方法让 GameWindow 支持它们,如果我错了,请告诉我)
所以我真正要问的是,有没有人有一个非常好的/简单的方法让我使用 OpenTK.GLControl 在表单中获取光标的窗口位置
事实上,即使它很棘手,请告诉我:) 我只需要能够做到!
【问题讨论】:
标签: c# .net opengl opentk mouse-coordinates