2011-09-04 92 views
5

我正在使用SDL 1.2.14,并且我找到了需要能够选择哪个监视器才能获得全屏窗口的情况。使用Xorg,我发现Xinerama可以使用SDL_VIDEO_FULLSCREEN_HEAD环境变量来完成这项工作,但是,我一直无法找到与Win32类似的东西。使用Win32/SDL将全屏窗口移动到辅助监视器

全屏窗口总是在主监视器上创建,由于SDL 1.2没有(SDL 1.3可以,但它不稳定)提供了API来选择在Win32上使用哪个监视器,我想知道是否有可能以编程方式将全屏窗口移至使用Win32 API创建后的辅助监视器。

我能够获得窗口/上下文的底层Win32句柄。

回答

3

Raymond Chen写了一篇关于如何switch an application between windowed and full screen的文章。对你最重要的部分将是此部分代码:

GetMonitorInfo(MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY), &mi)) 

这得到特定监视器的监视器信息,而是使用从MonitorFromWindow返回挑哪个窗口当前所在的监视器值。还有其他几种拾取监视器的方法,例如提供X,Y坐标或枚举它们(使用EnumDisplayMonitors(...))。

GetMonitorInfo(...)传回一个MONITORINFO返回,其中包含显示的相对位置和大小,您可以用它来定位全屏窗口。

完整的API详见MSDN

+0

我知道你想将一个已经全屏的窗口移动到另一个显示器上,但是你应该能够从我提供的信息中得出如何做到这一点。 – icabod

相关问题