代码之家  ›  专栏  ›  技术社区  ›  Matěj Zábský

最大化SDL窗口

  •  8
  • Matěj Zábský  · 技术社区  · 17 年前

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

    5 回复  |  直到 8 年前
        1
  •  8
  •   ron    8 年前

    所有的答案似乎都过时了,现在只需具体说明 SDL_WINDOW_MAXIMIZED 作为旗帜 SDL_CreateWindow

    window = SDL_CreateWindow(
        "Foobar",
        SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720,
        SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_MAXIMIZED
    );
    
        2
  •  7
  •   ColacX    12 年前

    在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);
    
        3
  •  5
  •   Community Mohan Dere    15 年前

    使用SDL_可调整大小标志时,此功能由窗口管理器控制。要使用SDL模拟最大化窗口,首先需要确定窗口在最大化时所占的大小。那你就给我打电话 SDL_SetVideoMode 在放置带有 SDL_VIDEO_WINDOW_POS environment variable .

    如果您确实需要将窗口最大化,就像您单击了最大化按钮一样,那么您必须直接访问底层窗口管理器(即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);
    
        4
  •  0
  •   Peter Shinners    17 年前

    可以设置其他环境变量来控制显示窗口。不幸的是,sdl文档目前已关闭,因此我无法查找您需要的内容。

        5
  •  -1
  •   MattyT    17 年前

    SDL_全屏是您正在寻找的选项:

    flags |= SDL_FULLSCREEN;
    screen = SDL_SetVideoMode(..., flags);