GDI 映射模式

Windows的GDI提供了八种映射模式,包括MM_TEXT、MM_LOMETRIC等,影响逻辑坐标与物理坐标的转换。MM_TEXT模式下单位为像素,其他模式涉及长度单位转换。MM_ISOTROPIC确保同等长度在设备上显示为正方形,MM_ANISOTROPIC允许自定义比例。通过SetMapMode、SetViewportExtEx和SetWindowExtEx等函数调整这些模式。
摘要由CSDN通过智能技术生成

Windows 在WINGDI.H里定义了八种GDI映射模式:MM_TEXT、MM_LOMETRIC、MM_HIMETRIC、MM_LOENGLISH、MM_HIENGLISH、MM_TWITPS、MM_ISOTROPIC和MM_ANISOTROPIC。可使用SetMapMode(hdc, iMapMode)选择映射模式。

这八种映射模式分两类:前六种和后两种。第一类映射方式逻辑(ViewPort)坐标和物理(Window)坐标比例不能修改,而第二类可以。第一类出除了MM_TEXT模式Y轴正向向下,其他Y轴正向都向上,第二类坐标轴方向可随意改变。

MM_TEXT: 物理坐标单位为像素,和逻辑单位一样

MM_LOMETRIC、MMHIMETRIC、MM_LOENGLISH、MM_HIENGLISH、MM_TWITPS: 物理坐标单位为对应的长度单位,ViewPort与Window的比值表示单位物理单位内的像素个数。

MM_ISOTROPIC: 可以将X轴和Y轴上的单位长度像素个数映射相同,这样绘图时当矩形长宽相等时在设备上显示即为正方形。设置时,先调用SetWindowExtEx(hdc,cxWindow,cyWindow,NULL),再调用SetViewportExtEx(hdc,cxViewport,cyViewport,NULL)可以充分利用客户区空间。

MM_NOISOTROPIC: 当第一次设置该模式时会保持前一次的ViewPort和Window比例

 

其他相关函数:

GetMapMode(hdc)

SetViewportEx(hdc,x,y,NULL)

SetWindowEx(hdc,x,y,NULL)

 

PS:先简单记录,还是很难理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值