我正在尝试获得全屏无边框窗口的支持,但我发现的信息都没有帮助。
无论窗口是否设置为WS_EX_TOPMOST,窗口将始终处于独占全屏模式。我使用WinSpy ++的全屏无边框窗口模式检查了游戏中的窗口样式,我使用的样式是相同的。
我知道它处于独占全屏模式,因为WDM停止渲染窗口的小空间预览。我也可以通过聚焦和不聚焦窗口来获得桌面闪烁。
我能够获得类似于我想要的行为的唯一方法是欺骗窗口,以为我不想要全屏模式。我这样做的方法是将窗口位置调整1px,使其与屏幕的位置和大小不匹配。这会阻止Windows自动打开独占全屏模式。
我知道在DirectX中解决这个问题的方法就是创建窗口标志设置为true的设备。但是,我在OpenGL中从未见过这样的东西。
按照第一条评论进行修改:
我没有使用任何第三方库进行窗口化,只需使用Win32和OpenGL。
修改
我使用WS_POPUP作为窗口样式。在我做过的一些DirectX测试中使用相同的窗口样式,我可以通过更改'windowed'属性来正确创建全屏无边框窗口或全屏独占窗口。
对于硬件,我在Win7 x64上使用带有最新驱动程序的GTX690。
答案 0 :(得分:2)
在ChoosePixelFormat / SetPixelFormat的PIXELFORMATDESCRIPTOR中使用PFD_SUPPORT_COMPOSITION。