首页 > 代码库 > MFC绘图控制-映射模式

MFC绘图控制-映射模式

一、映射模式基本概念

映射模式是设备描述表属性,用于确定从逻辑坐标值到设备坐标值的转换方式。传送给CDC输出函数的是逻辑坐标值。设备坐标值是指窗口中相应的像素点位置。

MM_TEXT为默认映射模式,如果使用其他映射模式,可调用CDC::SetMapMode()。

1 dc.SetMapMode(MM_LOMETRIC);  2 //Do some drawing  

Windows支持8种不同的映射模式,属性分别如下:

说明:如果在MM_LOENGLISH映射模式下画一条100单位长的线,它可能不是正好1英寸长。原因是Windows并不知道监视器的物理分辨率(dpi,是指监视器在水平或垂直方向上每英寸内可显示的点数)

 

二、移动原点

1、CDC::SetWindowOrg(),移动窗口原点,处理逻辑坐标值。CDC::SetViewportOrg(),移动视口原点,处理设备坐标值。

2、SetWindowOrg(x, y),将窗口原点移至(x, y),等价于告诉Windows将逻辑点(x, y)映射成设备点(0, 0)。

3、SetViewportOrg(x, y),将视口原点移至(x, y),等价于告诉Windows将逻辑点(0, 0)映射成设备点(x, y)。

1 CClientDC dc(this);  2 dc.SetMapMode(MM_TEXT);  3 dc.SetWindowOrg(CPoint(100, 100));  4 dc.Rectangle(CRect(100, 100, 300, 300));  

MFC绘图控制-映射模式