一、映射模式基本概念
映射模式是设备描述表属性,用于确定从逻辑坐标值到设备坐标值的转换方式。传送给CDC输出函数的是逻辑坐标值。设备坐标值是指窗口中相应的像素点位置。
MM_TEXT为默认映射模式,如果使用其他映射模式,可调用CDC::SetMapMode()。
dc.SetMapMode(MM_LOMETRIC); //Do some drawingWindows支持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)。
CClientDC dc(this); dc.SetMapMode(MM_TEXT); dc.SetWindowOrg(CPoint(100, 100)); dc.Rectangle(CRect(100, 100, 300, 300));
原文地址:http://blog.csdn.net/mengwang024/article/details/41318681