Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何用模具打开窗户_C++_Window - Fatal编程技术网

C++ 如何用模具打开窗户

C++ 如何用模具打开窗户,c++,window,C++,Window,我是OpenGl和glew库的新手,在显示带有尺寸的窗口标题时遇到问题 glfwSetWindowTitle函数只需要两个参数,其中第二个参数必须是以null结尾的字符串 有几种方法可以将数字转换成字符串。例如,您可以使用std::stringstream: 您需要注册回调以捕获调整大小事件。创建一个具有以下签名的函数,以便在每次收到调整大小事件时更改标题。大概是这样的: void resize(GLFWwindow *win, int w, int h) { std::string m

我是OpenGl和glew库的新手,在显示带有尺寸的窗口标题时遇到问题

glfwSetWindowTitle函数只需要两个参数,其中第二个参数必须是以null结尾的字符串

有几种方法可以将数字转换成字符串。例如,您可以使用std::stringstream:


您需要注册回调以捕获调整大小事件。创建一个具有以下签名的函数,以便在每次收到调整大小事件时更改标题。大概是这样的:

void resize(GLFWwindow *win, int w, int h)
{
    std::string msg = "Title: " + std::to_string(w) + " " + std::to_string(h);
    glfwSetWindowTitle(win, msg.c_str());
}
在主函数中,注册此回调:

int main()
{
    (...)
    GLFWWindow *win;
    (...)
    glfwSetWindowSizeCallback(win, resize);
    (...)
}

这个代码不起作用,不是吗?glfwSetWindowTitle方法只接受2个参数。是的,代码没有使用它。我只是不知道如何在标题工具中显示正确的宽度和高度。我以为它会这样工作。那么您的问题应该是:如何在字符串中格式化数字?第二个参数必须是const char*,这是一个字符串。也许你应该先阅读C++基础知识,然后再尝试使用OpenGL?@ GyDetrial24:窗口的标题是字符串。因此,您应该学习如何格式化字符串。一旦你知道如何做,就可以很容易地准备一个字符串作为窗口标题,称为格式化,然后你可以使用该字符串来设置窗口标题。很抱歉,这不是我要找的。调整窗口大小时,宽度和高度保持不变,我需要它们更新并显示窗口的当前大小window@G_programmer24:那么,我建议您在窗口大小更改时设置字符串格式和窗口标题。C++是一种命令式语言,意思是你一步一步地描述应该发生什么,什么时候应该发生。我的印象是,你在用声明性的术语思考,即一般的规范,广义的术语,价值如何结合在一起,当一个部分发生变化时,其他部分也随之变化。有这样的编程语言,但是C和C++不是这样的。@ GGPrimeRe24严肃地说,在深入研究之前,先做基本的教程。如果你继续走下去,每一步都会很艰难。开始变小。
void resize(GLFWwindow *win, int w, int h)
{
    std::string msg = "Title: " + std::to_string(w) + " " + std::to_string(h);
    glfwSetWindowTitle(win, msg.c_str());
}
int main()
{
    (...)
    GLFWWindow *win;
    (...)
    glfwSetWindowSizeCallback(win, resize);
    (...)
}