2011-09-04 105 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

相關問題