net中对多显示器的支持转- zeroone - 博客园

现在很多显卡都带有S端子,可以直接接到电视或投影仪(当然双头显卡或是用双显卡也可以)。
winXp已经内置支持双显示器。装了双输出的显卡后在显示属性里会看到有二个监视器图标了。
在第二个监视器上选中“将window桌面扩展到该监视器上”,就可以把第二个监视器当作{dy}个监视器的延伸来用了。
例如二个监视器的分辨率都是1280*1024的话,那二个监视器加起来就有了2560*1024的桌面了。
使用时也很方便,只要把窗口拖到另一个监视器中去就行了。
这样可以在一个监视器上打开vs2005在另一监视器上打开msdn;或是在一个监视器上写程序另一个监视器上用pplive看世界杯。

 

.net2.0在System.Windows.Forms.Screen类提供了对多监视器的支持(参见ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.NETDEVFX.v20.chs/CPref17/html/T_System_Windows_Forms_Screen.htm)。

 名称 说明
Public property Static 获取系统上所有显示器的数组。
Public property 获取与数据的一个像素相关联的内存位数。
Public property Supported 获取显示的边界。
Public property 获取与显示关联的设备名称。
Public property 获取一个值,该值指示某个显示是否为主设备。
Public property Static Supported 获取主显示。
Public property Supported 获取显示器的工作区。工作区是显示器的桌面区域,不包括任务栏、停靠窗口和停靠工具栏。

 

 

 名称 说明
Public method Supported 已重载。 已重写。 
Public method Static 在 中检索包含指定控件的{zd0}部分的显示器。
Public method Static 检索包含该对象(被指定句柄所引用)的{zd0}部分的显示器的 Screen。
Public method Static 检索包含指定点的显示器的 Screen。
Public method Static 检索包含矩形的{zd0}部分的显示器的 Screen。
Public method Static 已重载。 检索显示器的边界。
Public method Supported 已重写。 计算并检索对象的哈希代码。
Public method Supported GetType  获取当前实例的 Type。 (从 Object 继承。)
Public method Static 已重载。 检索显示器的工作区。
Public method Static Supported ReferenceEquals  确定指定的 Object 实例是否是相同的实例。 (从 Object 继承。)
Public method Supported 已重写。 检索表示此对象的字符串。


有了这个类,在程序中控制使用双监视器就很简单了,只要将窗体的移到相应监视器的坐标范围就可以了。
如下图,笔者用的是二个17寸LCD,主监视器分辨率用1280*1024,辅监视器放在右边,因为距离远了点所以分辨率用低了一档为1024*768。

 

如要将窗体移到辅显示器上显示,只需一行代码:

如果要在辅显示器上全屏显示:

笔者现在在开发的系统中就有一个子系统需要实现进入系统后在主监视器操作而在辅监视器上全屏播放视频。
最初的方案是用一个商业软件,此软件可以在winxp中实现用二套鼠标键盘,二个用户登录后分别在二个监视器上工作,互不干扰。每次重启后都要用另一个用户登录进去播放视频,后来觉得这样太麻烦,找到资料好就自己写了个简单的播放器。在系统启动后自动在辅监视器上全屏播放视频。省去了每次要登录二个用户的麻烦。

郑重声明:资讯 【net中对多显示器的支持转- zeroone - 博客园】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——