40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
当然可以。下面是一个使用 glfwSetWindowCloseCallback 函数的代码示例
|
|
|
|
// 定义一个关闭回调函数
|
|
static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods)
|
|
{
|
|
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
|
|
glfwSetWindowShouldClose(window, GLFW_TRUE); // 设置窗口的关闭标记为真
|
|
}
|
|
|
|
int main()
|
|
{
|
|
// 初始化GLFW和创建窗口
|
|
glfwInit();
|
|
GLFWwindow* window = glfwCreateWindow(800, 600, "My Title", NULL, NULL);
|
|
|
|
// 设置当前上下文和初始化GLAD
|
|
glfwMakeContextCurrent(window);
|
|
gladLoadGL(glfwGetProcAddress);
|
|
|
|
// 设置关闭回调函数
|
|
glfwSetWindowCloseCallback(window, key_callback);
|
|
|
|
// 主循环
|
|
while (!glfwWindowShouldClose(window))
|
|
{
|
|
// 渲染代码
|
|
|
|
// 交换缓冲区和处理事件
|
|
glfwSwapBuffers(window);
|
|
glfwPollEvents();
|
|
}
|
|
|
|
// 销毁窗口和终止GLFW
|
|
glfwDestroyWindow(window);
|
|
glfwTerminate();
|
|
}
|
|
|
|
这段代码会在用户按下ESC键时关闭窗口。
|
|
如果您想要隐藏窗口而不是关闭,您可以在关闭回调函数中使用 glfwHideWindow 函数
|
|
。如果您想要重新显示窗口,您可以在其他地方使用 glfwShowWindow 函数。 |