GDI 映射方式

在默认情况下,程序都是相对于客户区的左上角,以像素为单位绘图的。

“映射方式”是一种几乎影响任何客户区绘图的设备描述表属性。
另外有4种设备描述表属性——窗口原点、视口原点、窗口范围和视口范围——与映射方式密切相关。

GDI 绘图函数中需要的传入的坐标值使用的都是一种“逻辑单位”。Windows 必须将逻辑单位转换为“设备单位”,即像素。这种转换方式由映射方式、窗口和视口原点,以及窗口和视口的范围所控制的。

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)

可选

可选


设置映射方式:
SetMapMode(hdc,iMapMode);
iMapMode 是8个映射方式标识符之一。

获取当前的映射方式:
iMapMode = GetMapMode(hdc);

默认映射方式为 MM_TEXT。在这种方式下,逻辑单位与物理单位(也叫设备单位)相同,这样就可以直接以像素为单位进行操作。
示例:
// MM_TEXT 映射方式下:
TextOut(hdc,8,16,TEXT("Hello"),5);
// 文本从距离客户区左端8像素、上端16像素的位置处开始。

// MM_LOENGLISH 映射方式下:
TextOut(hdc,50,-100,TEXT("Hello"),5);
// 文本从距离客户区左端0.5英寸、上端1英寸的位置处开始。

posted on 2012-01-06 00:23 梦五 阅读(302) 评论(0)  编辑 收藏 引用 所属分类: Windows相关


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年12月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜