中国空军虚航组织(LKYFLY)

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1806|回复: 8

[游戏外设] 技术交流:分屏显示的系统配置方法,

[复制链接]
发表于 2013-9-23 19:52:07 | 显示全部楼层 |阅读模式

马上注册,结交更多飞友,享用更多功能,让你轻松玩转虚航!

您需要 登录 才可以下载或查看,没有账号?注册

x
一、分屏显示的系统配置方法   
      
为了安装多显示器,首先检查机器硬件,当前Windows操作系统只支持PCI适配器来实现多显示器桌面,它要求显卡必须使用以下芯片组中的一种:ATI   Mach64、S3  764和764+、Cirrushgic5436、5446和7458、Imagine   128   Series1和2、S3  Virge或ET6000、M9711等。一般情况下,一个显卡驱动一个显示器,一台机器最多可以驱动7台显示器,其中一台为主显示器,其余为副显示器。主显示器也是Windows启动画面出现的那个显示器。   
      
    进入"控制面板"-"显示",双击"显示",弹出"显示属性"对话框,选中"设置",如果安装了多个监视器,这时候对话框的上半部分显示系统中目前显示器的数量。可右键单击一个监视器图标,再单击"标识"查看对应于单击其图标的监视器的显示编号。请将它们拖动到代表在监视器间移动项目方式的位置。例如,如果您正使用两个监视器,并希望通过左右拖动来将项目从一个监视器中移到另一个中,请将图标并排排列。要通过上下拖动来在监视器间移动项目,请将图标上下排列。图标的位置并不一定与监视器的物理位置相对应。您可以将图标上下放置,即使监视器是并排放置的。   
      
     二、分屏显示的软件实现   
      
  通过上面的设置,虽然使Windows支持多显示器扩展桌面的功能,但也仅仅是实现了设备的连接与管理,一般Windows应用程序的窗口不能自动运行到副显示器上,用户只能通过鼠标拖动来将程序的窗口扩展到副显示器上,如果需要将程序窗口自动扩展到不同的显示器显示,必须采用相应的分屏显示编程技术。在这种技术中,可以使用Windows的User32.DLL动态连接库提供的API函数SetWindowPos()(如果采用VC这个开发平台,CWnd类提供了一个同样的成员函数),它的功能是更改窗口的大小、位置及窗口的顺序,因此可以用来在多显示器桌面上实现应用程序窗体的定位显示。下面对这个函数进行详细的解释:   
      
      
   BOOL   SetWindowPos(   
   HWND   hWnd,   //   窗口的句柄;   
   HWND   hWndInsertAfter,   //   窗口次序句柄,   
   int   X,   //   窗口左上角的水平位置;   
   int   Y,   //   窗口左上角的垂直位置;   
   int   cx,   //   窗口的宽度;   
   int   cy,   //   窗口的高度;   
   UINT   uFlags   file://标志位;   
   );      
      
     这里需要解释的有hWndInsertAfter、uFlags两个参数   
      
     hWndInsertAfter      
      
     在窗口的"Z"序中排在需要的设置的窗口之前的窗口句柄;这个参数取以下值:      
      
      
   Value      Meaning      
   HWND_BOTTOM      将要操作的窗口放置在所有窗口之下;      
   HWND_NOTOPMOST   将要操作的窗口放置在"non-topmost"窗口之下;      
   HWND_TOP      将操作的窗口放置在所有的窗口之上;      
   HWND_TOPMOST      将要操作的窗口放置在"non-topmost"窗口之上;      
      
     uFlags      
      
     规定窗口的尺寸和位置的标志,这个参数通常取以下值:      
      
      
   Value   Meaning      
   SWP_DRAWFRAME   窗口重画时,绘制出窗口类中所描述的窗口的框架      
   SWP_HIDEWINDOW   隐藏窗口;      
   SWP_NOACTIVATE      窗口无任何动作;      
   SWP_NOMOVE         
   保持窗口的当前位置;      
   SWP_NOREDRAW      在新位置并不重画窗口;      
   SWP_NOSIZE      改变窗口的位置,并不改变窗口的大小,既忽略cx,cy两个参数的值;      
   SWP_NOZORDER      窗口重画时,保留当前的顺序,既忽略hWndInsertAfter参数的值      
   SWP_SHOWWINDOW   Displays   the   window.      
      
     另,该参数还可以取其它的值,具体含义读者可以参考MSDN。   
      
为了说明问题,下面的VB代码仅仅实现了在两个显示器分别显示不同的窗口,用户点击按钮后,主显示器显示窗口Form1,副显示器显示窗口Form2,感兴趣的读者可以稍加修改,就可以应用到实际项目开发中去。   
      
     首先在VB全局模块中声明:   
      
      
  Public   Declare   Function   SetWindowPos   Lib   "user32"   Alias  "SetWindowPos"   (ByVal   hwnd   As   Long,   ByVal   hWndInsertAfter  As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long,   ByVal  cx   As   Long,   ByVal   cy   As   Long,   ByVal   wFlags   As   Long)  As   Long     
      
     其次在需要定位的两个窗口模块中调用该函数。具体的VB代码是:   
      
      
   Private   你好   Form1_Load(   )   
   Const   HWND_TOPMOST=-1   
   Const   SWP_NOACTIVATE=&H10   
   SetWindowPos   Me.hWnd,   HWND_TOPMOST,   0,   0,   ScreenWidht/2,   ScreenHeight,   SWP_NOACTIVATE   '在主显示器的显示区域上显示窗口1;   
      
   End   你好   
   Private   你好   Form2_Load(   )   
   Const   HWND_TOPMOST=-1   
   Const   SWP_NOACTIVATE=&H10   
  SetWindowPos   Me.hWnd,   HWND_TOPMOST,   ScreenWidht/2,   0,  ScreenWidht/2,   ScreenHeight,   SWP_NOACTIVATE   '在副显示器的显示区域上显示窗口2;   
   End   你好   
         
      
     为了正确的显示,需要将窗体的ScaleMode属性设置为twips,这样才可以与Windows系统中ScreenWidth和ScreenHeight的计量单位twips保持一致。
   二 多屏显示卡可以使一台PC机支持多台显示器/电视;在不同的屏幕上显示各自不同的画面,几台显示器/电视机又可共同组合一幅大画面;鼠标可在多个屏幕之间任意漫游,可平滑的将光标由一个屏幕移到任意另一个显示器上,也可将任意应用程序,由占用一个屏幕扩展至占用两个甚至更多个屏幕,同时也可将不同应用程序在不同屏幕之间任意切换。另外可在一台计算机上同时安装多块卡,屏幕数量任意选择,屏幕方式任意排列;这将给你更多的显示信息,而且更舒适,更便捷。

多屏卡可以使您需要的各种软件、信息在各自的屏幕上同时最大化显示。比如:处理字表,您可以直接把这个字表(word、EXCELL)文件从WINDOWS的资源管理器拖到字表处理软件。或者在两个屏上分别最大化打开WEB浏览器和电子邮件管理程序。多屏幕显示卡的优点,不仅仅在于可以加大加宽工作窗口尺寸,更重要的是通过一台PC机而实现更多的不同的工作窗口。
多屏显示卡可以将一幅画面扩展至多台显示器上显示,从而创建一个大的虚拟显示屏,可以非常方便地将多个画面(窗口)放置于不同的屏幕上,或用多个屏幕共同显示一幅大的画面。一块多屏显示卡一般支持双屏或四屏显示,当需要更多屏显示时可以通过增加显示卡来实现。
三  ,升级主板用分频器,可以分十六台都没问题
四 --------不匹配,软冲突--想不出了还有什么原因了,古典贵宾就自个想办法解决吧
发表于 2013-9-23 20:00:38 | 显示全部楼层
不错。学习了。
发表于 2013-9-24 00:33:53 | 显示全部楼层
都跟42学上了???
发表于 2013-9-24 08:49:22 | 显示全部楼层
学习,学习      
发表于 2013-10-5 16:18:24 | 显示全部楼层
很复杂,支持
 楼主| 发表于 2013-10-7 00:10:12 | 显示全部楼层
发表于 2014-10-17 00:24:02 | 显示全部楼层
很复杂。。慢慢试了。。。。。。。。。。。
发表于 2015-12-12 22:53:15 | 显示全部楼层
不错,学习了。
发表于 2017-10-5 11:10:23 | 显示全部楼层
看看 ,顶一下 ,支持支持,哈哈 !支持支持,哈哈 !
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

最新通知上一条 /1 下一条

QQ|手机版|小黑屋|中国空军虚航组织(LKYFLY) ( 京ICP备10217415号 )

GMT+8, 2024-12-4 01:23 , Processed in 0.074978 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表