如何将OpenGL显示(由OpenGL创建的窗口)设置为最大化?
我想将我的OpenGL显示设置为最大化 如果我如何将OpenGL显示(由OpenGL创建的窗口)设置为最大化?,opengl,lwjgl,Opengl,Lwjgl,我想将我的OpenGL显示设置为最大化 如果我setResizeable(true),然后让玩家点击最大化按钮,我可以让用户手动操作,这对用户来说是一个痛苦和不必要的步骤 我可以将显示大小设置为与玩家屏幕相同的大小,但这看起来很奇怪,我不想选择全屏模式 显然,我已经可以全屏显示并设置显示大小,但我目前找不到任何方法可以真正使显示最大化 如果您不理解fullscreen和maximized()之间的区别,那么这里是的描述,这里是的描述。这太长了,不能作为评论,所以我主要在这里发布: 最大化模式:
setResizeable(true)
,然后让玩家点击最大化按钮,我可以让用户手动操作,这对用户来说是一个痛苦和不必要的步骤
我可以将显示大小设置为与玩家屏幕相同的大小,但这看起来很奇怪,我不想选择全屏模式
显然,我已经可以全屏显示并设置显示大小,但我目前找不到任何方法可以真正使显示最大化
如果您不理解fullscreen和maximized()之间的区别,那么这里是的描述,这里是的描述。这太长了,不能作为评论,所以我主要在这里发布: 最大化模式: 调用CreateWindow或CreateWindowEx时,请使用
WS\u MAZIMIZE
hwnd = CreateWindowEx(
WS_EX_CLIENTEDGE,
g_szClassName,
"The title of my window",
WS_MAZIMIZE,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
如果您正在使用过量,可能会感兴趣
有人建议
我认为您可以通过将显示位置设置为
0px,0px和通过
然后将此显示模式设置为
新的显示模式
全屏模式:
设置显示模式和全屏
public static void setDisplayModeAndFullscreen(DisplayMode mode)
throws LWJGLException
- 设置上下文的模式李>
- 如果没有通过create()创建上下文,则调用create()时将应用该模式李>
- 如果
为mode.isfullscreenable()
,则上下文将成为全屏上下文,显示模式切换到true
给定的模式李>getDisplayMode()
- 如果
为mode.isfullscreenable()
,则上下文将变为窗口上下文,其尺寸在false
本机光标位置也将重置getDisplayMode()返回的模式中给定。
mode - The new display mode to set. Must be non-null.
Throws:
LWJGLException - If the mode switch fails.
找到了
我还发现它似乎在用可能的屏幕模式填充一个数组列表,但我不确定您是否可以使用jbutler483已经提到的
Display.setDisplayMode和FullScreen(DisplayMode模式)
更改LWJGL窗口的大小
但这有一个诀窍。
有三种方法可以获得这些显示模式:
- ''
- ''
- ''
最后但并非最不重要的一点是,您可以使用“getDesktopDisplayMode”获得适合桌面的模式。我从未测试过是否可以启用全屏。将显示器的父级设置为连接到
JFrame
的Canvas
,然后将JFrame
设置为最大化
例如:
JFrame=newjframe();
画布=新画布();
frame.add(画布);
frame.setVisible(true);
试一试{
Display.setParent(画布);
Display.create();
}捕获(LWJGLEXE){
e、 printStackTrace();
}
setExtendedState(JFrame.MAXIMIZED_二者);
您使用什么框架来创建窗口和GL上下文?我怀疑您可能必须找到屏幕分辨率,并将窗口位置/大小设置为匹配。您可以使用最大化提示创建窗口,但这取决于您如何创建窗口(与openGL@ratchetfreak我使用“display.create()”创建显示。我目前没有办法给出“最大化提示”@jozxyqk我可以这样做,但它不一样,边框看起来都不稳定。也许将标题改为专门设置lwjgl窗口-最大化的是窗口管理器,而不是GL,但java和lwjgl挡住了你的去路。也许会在上面发帖子?但我从来不叫“CreateWindowEx”?有点混乱。你调用“CreateWindow”吗?没有。我调用“Display.create()”。就是这样。虽然这并不能真正回答这个问题,但正如你所说,getDesktopDisplayMode()似乎返回了一种适合桌面的模式,它不是全屏的,但非常接近-所以我给了它一个投票。谢谢你的帮助。