当前位置:  开发笔记 > 开发工具 > 正文

最大化SDL窗口

如何解决《最大化SDL窗口》经验,为你挑选了2个好方法。

我该如何告诉SDL最大化应用程序窗口?

我正在使用这些标志创建窗口:SDL_OPENGL | SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_RESIZABLE.



1> ColacX..:

在SDL2.0中

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);



2> Judge Maygar..:

当您使用SDL_RESIZABLE标志时,此功能由窗口管理器控制.要使用SDL模拟最大化窗口,您需要首先确定窗口在最大化时占用的大小.然后,你会打电话SDL_SetVideoMode放置窗口后这种规模SDL_VIDEO_WINDOW_POS环境变量.

如果您确实需要最大化窗口,就像您单击了最大化按钮一样,那么您将必须直接访问底层窗口管理器(即SDL不会帮助您).

例如,ShowWindow函数可用于使用Win32 API最大化窗口.要获取SDL创建的窗口的句柄,请使用SDL_GetWMInfo函数.生成的SDL_SysWMinfo结构包含HWND类型的窗口字段.这必须与SW_MAXIMIZE标志一起传递给ShowWindow函数.

SDL_SysWMinfo info;
SDL_VERSION(&info.version);
SDL_GetWMInfo(&info);
ShowWindow(info.window, SW_MAXIMIZE);

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有