windows程序设计(8):映射模式

什么是映射模式呢?为了说清楚这个概念,我们先介绍两个名词:“窗口”、“视口”。

视口是基于设备坐标的。对于显示器,就是像素的,也就是你看到的。而窗口是基于逻辑坐标的,虚拟的,也是你写程序时使用的。而且与你当前拿到的设备描述表有关,一般通过beginPaint拿到的都是客户区;而使用getDC拿到的则是通常意义下的窗口:客户区+菜单栏+工具栏+标题栏等等。

而窗口到视口的坐标映射,就是映射模式。用数学公式表述为:

窗口到视口:

xViewport = (xWindow-xWinOrg)*xViewExt/xWinExt+xViewOrg

yViewport = (yWindow-yWinOrg)*yViewExt/yWinExt+yViewOrg

其中 xViewExt表示的是视口的横坐标范围,xWinExt表示的是窗口的横坐标范围,通常我们关心的不是它们的具体值,而是二者的比例。

windows提供了8种映射模式

映射方式

逻辑单位

增加值

x值

y值

MM_TEXT

图素

MM_LOMETRIC

0.1 mm

MM_HIMETRIC

0.01 mm

MM_LOENGLISH

0.01 in.

MM_HIENGLISH

0.001 in.

MM_TWIPS

1/1440 in.

MM_ISOTROPIC

任意(x = y)

可选

可选

MM_ANISOTROPIC

任意(x != y)

可选

可选

这8种模式通常分为3大类:MM_TEXT、“度量”映射方式、“自作主张”的映射方式。下面对他们一一进行介绍:

MM_TEXT

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值