如何调整 C 语言窗口大小
在 C 语言中,调整窗口大小需要使用以下步骤:
1. 初始化 SDL 库
<code class="c">#include <SDL2/SDL.h>
int main() {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}
}</code>2. 创建窗口
立即学习“C语言免费学习笔记(深入)”;
<code class="c">SDL_Window* window = SDL_CreateWindow("My Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_RESIZABLE);</code>其中,
640和
480是初始窗口宽高,
SDL_WINDOW_RESIZABLE表示窗口可调整大小。
3. 获取窗口大小
<code class="c">int width, height; SDL_GetWindowSize(window, &width, &height);</code>
4. 设置新窗口大小
<code class="c">SDL_SetWindowSize(window, new_width, new_height);</code>
其中,
new_width和
new_height是新窗口宽高。
5. 捕获窗口调整事件
<code class="c">SDL_Event event;
while (SDL_WaitEvent(&event)) {
if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) {
// 窗口调整大小事件
}
}</code>6. 清理 SDL
<code class="c">SDL_Quit();</code>
示例代码:
<code class="c">#include <SDL2/SDL.h>
int main() {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
SDL_Log("Unable to initialize SDL: %s", SDL_GetError());
return 1;
}
SDL_Window* window = SDL_CreateWindow("My Window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_RESIZABLE);
if (!window) {
SDL_Log("Unable to create window: %s", SDL_GetError());
return 1;
}
int width, height;
SDL_GetWindowSize(window, &width, &height);
while (true) {
SDL_Event event;
while (SDL_WaitEvent(&event)) {
if (event.type == SDL_QUIT) {
break;
} else if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) {
width = event.window.data1;
height = event.window.data2;
}
}
// 渲染代码...
SDL_UpdateWindowSurface(window);
}
SDL_Quit();
return 0;
}</code> 