网站大量收购闲置独家精品文档,联系QQ:2885784924

Windows系统的多显示器模式的编程.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Windows系统的多显示器模式的编程 这几天研究了一下Windows系统的多显示器模式的编程,实现了Windows下支持10显示器模式的通用com组件,这里做一个整理和回顾,希望能对再这方面开发的兄弟们有些启发和帮助:? (一)?Windows系统下的多显示器模式的原理 ?????Microsoft新的操作系统(Windows?98\\Windows?2000\\Windows?XP)内置了对多监视器的支持,即用户可以在一台计算机上安装多个显示卡并接上多个显示器,然后把这些显示器的显示区域组织成一个大的虚拟的Windows桌面。每一个显示区域的底部都有系统任务栏,我们可以在任何一个显示区域内增加桌面快捷方式,这样就可以在第一个显示区域上用Visual?C++编程,同时在第二个显示区域上打开Internet?Explorer上网——再也不用进行麻烦的切换了。 ????多显示器模式的原理实际上很简单,主要还是要靠操作系统的支持,比如WinXP就支持10个显示器,本文所使用的调试和开发环境都是以WinXP为主,其余的原理都相同慢慢调试就行了. Windows提供的多显示器模式主要有以下三个功能:?   1.更大的Windows桌面:在多显示器模式下,可以把多个显示器的显示区域结合在一起来显示Windows桌面,不管这些显示器的尺寸、物理位置、分辨率和刷新频率是否相同。当我们运行一个应用程序时,程序的主窗口可以位于任何一个显示器的显示区域内,也可以跨多个显示区域。我们也可以把一个程序的窗口从一个显示区域移到另一个显示区域中。   2.?屏幕复制或远程显示:我们可以让两个显示器显示相同的内容。在进行培训或者向众人进行演示时,这个特点是很有用的。利用这个特性,技术支持人员还可以对应用程序进行远程监视和调试。   3.多重独立显示:在以上的两种模式下,所有的显示区域都是Windows虚拟桌面的一部分,但是在多重独立显示模式下,应用程序访问的显示器并不属于Windows虚拟桌面。假设系统的第二个显示器是一个高分辨率的大尺寸显示器,我们可以把它用做CAD应用程序的专用显示。通过在CAD应用程序中调用新的Windows?API,我们可以借助GDI在上面画图。独立显示器的显示区域没有桌面上的任何对象(任务栏和快捷方式),它与Windows桌面是独立的。这可以避免Windows桌面对应用程序输出的任何干扰,我们也不用担心会在无意中把其它的窗口拽到独立显示的显示区域中,这种方式就好像为应用程序提供了一个专用的显示器。 (二)理解虚拟桌面(Virtual?Desktop)及其坐标 既然是要对多显示器模式进行编程和开发,那么我们就要首先理解Windows的虚拟桌面(Virtual?Desktop)及其坐标了.这是我们编程开发的基础,理解了一切就很顺利了,几乎没有什么难度.   在单显示器系统中,实际Windows桌面的形状和大小与显示器是相同的。在多显示器模式下,每一个显示器实际上是一个大虚拟桌面的一个“子视窗”。   我们可以通过控制面板中的显示器属性对每一个显示器的显示区域的大小(分辨率)和相对位置进行调整,所有这些显示区域互相连接但并不重叠。图一中的显示器1是主显示器,主显示器的作用是确定虚拟桌面的坐标。不管主显示器的位置如何,它的显示区域的左上角的坐标定为虚拟坐标的零点(0,0),右下角的坐标是(X-1,Y-1)(假设主显示器的分辨率为X×Y),其余显示区域的坐标由它和主显示器的相对位置决定。通常虚拟桌面中显示区域的相对位置和实际显示器的物理相对位置是相同的。因为所有显示区域必须相连,因此可以用一个包含所有显示区域的最小矩形来表示虚拟桌面的大小。图一中的矩形边界代表了虚拟桌面的范围。 [Page]   因为虚拟桌面中的坐标系统必须是连续的,因此第二个显示区域的坐标是主显示器的显示区域的继续。假设两个显示器都使用1024×768的分辨率,并且第二个显示器位于第一个显示器(主显示器)的正右方,则第二个显示区域的坐标是从(1024,0)到(2047,767)。   但是并不是所有的显示区域都具有相同的分辨率,而且这些显示区域也不一定是底边对齐的。就像图一中显示的那样,你真正能看到的有效显示区域是红色+兰色+紫色的不规则区域,而黄色区域虽然也属于虚拟桌面的一部分,但它不属于任何一个显示区域,这部分也叫做无效区域。如图一中所示,假设显示器1的分辨率是1024×768,显示器2的分辨率为800×600,显示器3的分辨率为640×480。零点的位置如图中所示,显示器1的坐标为(0,0)到(1023,767),显示器2的坐标为(-800,168)到(-1,767),显示器3的坐标是(1024,0)到(1663,479)。而(-800,0)

文档评论(0)

e71ah65wn9 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档