+ -
当前位置:首页 → 问答吧 → 多显示器平台上一个腚疼的坐标问题,能重映射不?

多显示器平台上一个腚疼的坐标问题,能重映射不?

时间:2011-07-16

来源:互联网

俺们知道如果桌子上摆了一台以上的显示器,可以在系统的显示器设置窗口里把对应的图标拖放到合适的位置。那个管理窗口允许把任何一部显示器设置成主显示器,并且调整各显示器之间的上下左右关系。

我习惯把主显示器放在中央,这样系统的任务栏、桌面图标等等都会显示在中间。其余的显示器摆在主显示器的左右,像下图这样:


设置好以后,我拖动窗口到任意位置、横跨任意宽度都很正常,但一玩游戏就是另一回事了。因为游戏的窗口X坐标原点似乎认死了主显示器的左上角,而左边的扩展显示器X坐标都是负值了。游戏允许通过脚本设置窗口的坐标。如果在脚本里强行把坐标设置为负则会导致显卡驱动崩溃。

如果解释得还不够清楚,我放几个图片说明一下。

这个是菜单界面,进入游戏之前运行的是一个独立的GUI,固定在主显示器上全屏显示,无法通过设置修改:


GUI的图像设置菜单允许用户直接键入游戏主窗口的分辨率,我的每台显示器分辨率是1680x1050,在这里我把X分辨率设为略小于两个窗口的宽度,Y分辨率也是小于显示器高度。


运行游戏,看见我说的问题了吧?这里很明显比我说的问题更严重,X坐标不是从屏幕左上角开始算的,是屏幕中线。游戏画面右边有一部分超出桌面空间了。


Y分辨率小于显示器高度带来的好处是游戏会把窗口风格设置成对话框的样式,外圈会有框体环绕,这样会给我一个边框用鼠标拖拽窗口,挪动位置。


用这个方法,我至少可以把它拽回屏幕中央。


而如果我把Y分辨率设置成1050,边框会消失,我再也无法移动窗口了。就会变成这个残疾德性:

(补充说明,边框消失并不代表是全屏模式。因为这个是跨显示器的分辨率,不能全屏)

要解决这个问题,目前官方通告的办法是把最左边的显示器设置为主显,但我觉得那样用起来太二了。另外一种方法是用软件或硬件的超宽屏虚拟方案,骗操作系统把三个屏认作一个。软件叫SoftTH,硬件用Matrox的TripleHead2Go Digital Edition,一个小盒子要2600多人刀。我没放弃寻找别的解决方案。

从分辨率设置功能和消除边框的功能上可以看出开发者在多显示器支持上还是花了不少工夫的,我感觉他们最终没能很好支持位于左侧的副显,很可能缘于Windows本身对多显示器桌面的坐标组织方式仍然不成熟。但我仍然希望可以通过一些设置来绕过这种制约,请问有没有什么办法可以重新映射系统显示坐标系统的?要是能让游戏不依赖主显示器的位置,把最左边显示器的左上角认作(0,0)那该多给力。

顺便贴张游戏截图,很难得的极品游戏。

作者: Alex_rcpilot   发布时间: 2011-07-16

LO2?

作者: Baesky   发布时间: 2011-07-16

DCS Warthog

作者: Alex_rcpilot   发布时间: 2011-07-16

热门下载

更多