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