【发布时间】:2019-10-08 10:32:24
【问题描述】:
我正在编写一些包含 SDL2 部分的代码。我想处理一个窗口在创建后移动到另一个显示器的情况,适当地放大窗口。
我正在使用 C。
我不知道的部分是如何在给定SDL_Window 对象的情况下,在多显示器设置中找出该窗口所在的显示器。如果我能找到它,那么找到该显示器的大小并适当地设置窗口大小就很容易了。
// Width and height of display that myWindow is in (myWindow some previously created SDL_Window)
int disp_x_size_px;
int disp_y_size_px;
/* Need code to get values for disp_x_size_px and disp_y_size_px.
With these values I can set the window size correctly. */
【问题讨论】:
-
@Fredrik:是的,但是您可以将
SDL_WINDOW_HIDDEN传递给SDL_CreateWindow()的flags参数,定位/调整它的大小,然后使用SDL_RaiseWindow()来传递显示出来。 -
SDL_GetWindowDisplayIndex()+SDL_GetDisplayBounds()+SDL_SetWindowPosition()不起作用吗? -
@Fredrik 抱歉,我的解释不清楚。默认情况下,窗口在显示器 0 中创建,我打算在创建之后,即在它移动到另一个显示器之后,根据它所在的当前显示器的大小来更改实际大小。我想也有可能在另一个显示器中创建窗口,尽管这样就会知道是哪一个。我将编辑我的问题来解决这个问题。不过,genpfault 的评论解决了我的问题。
-
@genpfault 谢谢!我之前没能找到这个
SDL_GetWindowDisplayIndex函数。这解决了我的问题。