屏幕缩放技术原理与实现方法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

概述

屏幕缩放允许呼叫方完整地查看主机屏幕(无滚动条),无论主机和显示器分辨率之间的差异。

屏幕缩放使用坐标映射方案以实现缩放。坐标映射机制涉及定义两个矩形:窗口(window),它定义了

逻辑坐标空间中的一个矩形;以及视口(viewport),它定义了目标设备上的一个矩形。这两个矩形建立

了逻辑单位和设备单位之间的比例关系——一个窗口范围的单位刚好能适应一个视口范围的像素,反之亦

然。下图说明了这一概念。

逻辑空间

窗口

视口

设备空间

ALGORITHM

用于缩放和取消缩放屏幕的两个例程分别是ScaleDisyWindow和RestoreDisyWindow。但在开始进行缩

放和取消缩放之前,必须先调用一次RestoreDisyWindow。这个调用必须在ScaleDisyWindow之前完成,

因为它会保存当前的坐标系统,以便在将来调用RestoreDisyWindow时可以恢复该坐标系统。第一次调用

RestoreDisyWindow是在InitializeTerminal中完成的。

ScaleDisyWindow接收一个设备上下文作为参数,该上下文应为显示设备上下文。它通过调用

SetMapMode将该设备上下文的映射模式设置为MM_ANISOTROPIC。映射模式定义了用于将页面空间单位

转换为设备单位的度量单位,并且还定义了设备x轴和y轴的方向。调用SetMapMode并传入MM_

ANISOTROPIC会更改映射模式,但同时保留现有的范围信息。图像仍然保持相同的绘制效果,但可以通过缩

放范围信息轻松实现缩放。为此,ScaleDisyWindow获取主机显示的垂直和水平分辨率,并通过调用

SetWindowExtEx设置设备上下文窗口的水平和垂直范围。同时,它还获取终端窗口的宽度和高度,并

通过调用SetViewportExtEx设置设备上下文视口的水平和垂直范围。请注意,SetMapMode、

SetWindowExtEx和SetViewportExtEx都是WindowsAPI函数调用。在主机(窗口)和端(视口)

之间的比例关系建立,主机上的任何图像都会相应地在端进行缩放。

RestoreDisyWindow第一次被调用时,会将映射模式、窗口范围和视口范围保存在静态局部变量中。

每次调用时,它都会将映射模式、窗口范围和视口范围设置为这些已保存的值,从而恢复原始的坐标系。

一旦显示被缩放,鼠标坐标也必须进行缩放。为此,鼠标的x位置乘以主机水平分辨率与终端宽度之

间的比例,然后四舍五入。鼠标的y位置乘以主机垂直分辨率与终端高度之间的比例,然后四舍五入。

鼠标坐标的缩放在SendMouseSeq中进行。

示例

OVERVIEW

ScreenScalingallowstheremotecallertheablilitytoseethehostscreeninitsentirety(withoutscrollbars)no

matterwasthedifferenceisweenthehostandremotemontiorsresolution.

Screenscalingusesthecoordinatemappingschemeinordertoaccomplishthescaling.Thecoordinatemapping

mechanisminvolvesdefiningtworectang:thewindow,whichdefinesarectangleinthelogicalcoordinatespace,

andtheviewport,whichdefinesarectangleonthedestinationdevice.Thetworectangestablisharatioween

logicalunitsanddeviceunits-awindowsextents’sw

文档评论(0)

136****1820 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档