《Windows SDK》025 GUI映射模式
一 核心知识点* 映射模式
默认的映射模式下,坐标原点在客户区的左上角,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函数第二个参数可选的某一个
页:
[1]