关于映射模式(MFC windows程序设计)

映射模式

映射模式是设备描述的属性,用于确定从逻辑坐标值到设备坐标值的转换方式。

传送给CDC输出函数的是逻辑坐标值。设备坐标值是指窗口中相应的像素点位置。

 例如:用dc.Rectangle(0, 0, 200, 100 ); 调用Rectangle函数时您不用告诉GDI:画一个200个像素点宽、100个像素点高的矩形,而是告诉他画一个200个单位宽、100个单位高的矩形。在默认映射模式MM_TEXT下,一个像素点恰恰相当于一个单位。但在其他映射模式中,逻辑单位被解释为不同的设备单位。如在MM_LOENGLISH映射模式中,一个逻辑单位相当于一英寸的百分之一。

SetWindowExt和SetViewportExt函数

SetWindowExt设定“窗口范围”;SetViewportExt设定“视口范围”。窗口的尺寸以逻辑单位计算,视口的尺寸以设备单位或像素点计算。当Windows对逻辑坐标值和设备坐标值进行相互转换是,使用一对公式,其中包含窗口逻辑尺寸(窗口范围)、实际尺寸(视口范围)以及坐标原点位置。一般说来,视口范围是画图所在窗口的大小(以像素点数目计算),而窗口范围是指以逻辑单位表示的窗口尺寸。 GetClientRect(&rect)返回以像素点表示的窗口尺寸。

小结:在设备坐标系中,距离长短以像素点数目来计量。设备上的(0,0)点始终在显示平面的左上角,x轴正向向右,y轴正向向下。逻辑坐标系则全然不同。原点可放在任一位置,并且随着映射模式的不同,x轴、y轴方向以及缩放比例因子(相当于一个逻辑单位的像素点数目)都会发生变化

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值