操作系统或设备:
Windows 10专业版x64
问题说明(发生的情况以及预期的结果):
使用Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
不仅将系统光标隐藏在显示游戏的客户区域内,还将其隐藏在窗口镶边/边框/框架/非客户区域的顶部。 这使得很难点击最小化/最大化/关闭按钮。 也许可以优化。
无法在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 :
最有用的评论
我的叉子在这里取得了一些进展: https :