鱼C论坛

 找回密码
 立即注册
查看: 2319|回复: 0

[学习笔记] 《Windows SDK》025 GUI映射模式

[复制链接]
发表于 2017-7-31 15:31:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
一 核心知识点
* 映射模式
默认的映射模式下,坐标原点在客户区的左上角,x向右,y向下,与数学中习惯的坐标不一致,需要转化映射模式

映射模式决定了xy轴的方向以及逻辑单位到设备单位的转换方式(即实际输出时的尺寸)

可以使用 SetMapMode 和 GetMapMode 来修改或获取系统的映射模式


* 逻辑单位和设备单位
逻辑单位独立于设备,不关心设备的实际尺寸大小,只是面向用户,保证“所见即所得”即可

设备单位是当 Windows 需要将 GDI 输出到某个具体的物理设备时,必须将逻辑单位转换为设备单位(一般为像素)

两者通过系统的映射模式进行换算


二 新API函数
* SetMapMode(hdc, MM_LOMETRIC)
该函数用于设置指定设备环境的映射模式

第一个参数: 环境设备句柄
第二个参数: 选定的映射模式,可以说下列的某一种——
1 MM_TEXT           每个逻辑单位为1个像素,x向右,y向下(默认)
2 MM_LOMETRIC       每个逻辑单位为0.1mm,x向右,y向上
3 MM_HIMETRIC       每个逻辑单位为0.01mm,x向右,y向上
4 MM_LOENGLISH      每个逻辑单位为0.1inch,x向右,y向上
5 MM_HIENGLISH      每个逻辑单位为0.01inch,x向右,y向上
6 MM_TWIPS          每个逻辑单位为1/20个点,每个点为1/72inch,x向右,y向上
7 MM_ISOTROPIC      任意缩放比例,且x = y
8 MM_ANISOTROPIC    任意缩放比例,且x != y

* iMapMode = GetMapMode(hdc)
该函数获取当前设备环境的映射模式

返回值是SetMapMode函数第二个参数可选的某一个

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-28 23:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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