Godot: Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)即使在窗口镶边上也会隐藏光标

创建于 2016-05-05  ·  3评论  ·  资料来源: godotengine/godot

操作系统或设备:
Windows 10专业版x64

问题说明(发生的情况以及预期的结果):
使用Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)不仅将系统光标隐藏在显示游戏的客户区域内,还将其隐藏在窗口镶边/边框/框架/非客户区域的顶部。 这使得很难点击最小化/最大化/关闭按钮。 也许可以优化。

bug windows core

最有用的评论

我的叉子在这里取得了一些进展: https :

所有3条评论

无法在Linux X11上重现此错误,因此我认为这是Windows平台代码中的错误。

我猜问题出在对Win32API ShowCursor(p_mode==MOUSE_MODE_VISIBLE);的调用中,该调用实际上在全局范围内隐藏了光标,而不仅仅是在客户区域。

似乎为了隐藏光标,必须完成对SetCursor(NULL)的调用。 此函数还返回调用时使用的最后一个游标,所以我想我们可以将其保留在变量中,以便稍后使用SetCursor(old_cursor)恢复它。

我不知道这会在全屏模式下表现如何。

https://msdn.microsoft.com/zh-CN/library/windows/desktop/ms648393(v = vs.85).aspx

编辑:按照看来,setcursor必须在窗口消息循环内完成。

EDIT2:我认为我们应该做的是在这种情况下实际使用OS_Windows :: WndProc循环隐藏和显示它。 我在考虑解决方案。 我一提出,我就会及时通知你。

我的叉子在这里取得了一些进展: https :

此页面是否有帮助?
0 / 5 - 0 等级