如何告诉SDL将应用程序窗口最大化?
我正在使用以下标志创建窗口:SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE。
如何告诉SDL将应用程序窗口最大化?
我正在使用以下标志创建窗口:SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE。
SDL_CreateWindow
的标志中指定SDL_WINDOW_MAXIMIZED
。window = SDL_CreateWindow(
"Foobar",
SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720,
SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_MAXIMIZED
);
sdl_window = SDL_CreateWindow("title", 10, 30, window_width, window_height, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE);
SDL_MaximizeWindow(sdl_window);
SDL_GetWindowSize(sdl_window, &window_width, &window_height);
sdl_gl_context = SDL_GL_CreateContext(sdl_window);
SDL_GL_MakeCurrent(sdl_window, sdl_gl_context);
如果您真的需要窗口像单击最大化按钮一样最大化,那么您将不得不直接访问底层窗口管理器(即SDL对此没有帮助)。
例如,可以使用Win32 API中的ShowWindow函数来最大化窗口。要获取由SDL创建的窗口的句柄,请使用SDL_GetWMInfo函数。生成的SDL_SysWMinfo结构包含类型为HWND的window字段。必须将其与SW_MAXIMIZE标志一起传递给ShowWindow函数。
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
SDL_GetWMInfo(&info);
ShowWindow(info.window, SW_MAXIMIZE);
还有其他的环境变量可以设置来控制显示窗口。不幸的是,SDL文档目前无法访问,所以我无法查找您需要的内容。
SDL_FULLSCREEN 是你要寻找的选项:
flags |= SDL_FULLSCREEN;
screen = SDL_SetVideoMode(..., flags);