我正在尝试一种方法来切换我的窗口之间的窗口模式和全屏模式。我已经成功地做了,除了一个问题。标题栏是不工作!你不能移动窗口也。没有这段代码一切工作都很好。
setFullscreen方法:
void Window::setFullscreen(bool fullscreen)
{
GLFWmonitor* monitor = glfwGetPrimaryMonitor();
const GLFWvidmode* mode = glfwGetVideoMode(monitor);
if (fullscreen) {
glfwSetWindowMonitor(m_window, monitor, 0, 0, mode->width, mode->height, mode->refreshRate);
glViewport(0, 0, mode->width, mode->height);
}
if (!fullscreen) {
glfwSetWindowMonitor(m_window, nullptr, 0, 0, m_width, m_height, GLFW_DONT_CARE);
glViewport(0, 0, m_width, m_height);
}
}
代码的结果:
2条答案
按热度按时间iqxoj9l91#
@tomasantunes帮我弄明白这一点。
在setFullscreen中,我将窗口设置为0、0或屏幕左上角。标题栏实际上并没有消失,只是离开了屏幕。因此,如果我将窗口设置为100、100,标题栏就会恢复。我犯了这样一个愚蠢的错误,这是相当愚蠢的。
固定代码:
新结果:
gcuhipw92#
不确定您是否还在寻找答案,但是,我这里的代码修复了您最初遇到的相同问题。
在更改为全屏模式之前,请保存窗口位置和大小。
然后在从全屏更改回窗口模式时,应用保存的位置和大小属性。