我试图实现全屏无边框窗口的支持,但是我找到的所有信息都没有帮助。
无论窗口是否设置为WS_EX_TOPMOST,窗口始终会处于独占全屏模式。我用WinSpy++检查了使用全屏无边框窗口模式的游戏中的窗口样式,而我使用的样式是完全相同的。
我知道它处于独占全屏模式,因为WDM停止渲染我的窗口的小aero预览。我也在窗口聚焦和失焦时看到了桌面闪烁。
我唯一能够做到与我想要的类似的行为方式的方法是欺骗Windows使其认为我不想要全屏模式。我这样做的方法是通过将窗口位置调整1个像素,使其不匹配屏幕的位置和大小。这可以防止Windows自动开启独占全屏模式。
我知道在DirectX中解决此问题的方法很简单,只需要将窗口标记设置为true。但是,在OpenGL中,我从未见过类似的东西。
根据第一条评论进行编辑:
我没有使用任何第三方库来进行窗口管理,只是用Win32和OpenGL。
编辑:
我使用的窗口样式是WS_POPUP。在我做一些DirectX测试时,我可以通过更改“窗口化”属性来正确创建全屏无边框窗口或全屏独占窗口,而使用相同的窗口样式。
我使用的硬件是GTX690,安装了最新的Win7 x64驱动程序。
WS_POPUPWINDOW | WS_VISIBLE
看起来可以给你想要的。也许你可以发布一下你的窗口创建代码。此外,你使用的是什么硬件(可能与驱动程序有关)。 - GuyRTWS_POPUP
而不是WS_POPUPWINDOW
。 - GuyRT