SetWindowExt和SetViewportExt函数可以确定窗口(代表逻辑坐标系,各轴单位为逻辑单位)和视口(代表设备坐标系,各轴单位为像素)的范围,还有逻辑坐标系轴的方向。当窗口和视口指定的宽度符号相同则逻辑坐标系X轴正向朝右,相反则正向朝左。Y轴也同理,同号正向朝下,异号正向朝上。确定逻辑坐标系各轴方向。
SetWindowOrg和SetViewportOrg函数都是移动各自坐标系中的点到设备坐标系原点。视口按视口坐标系,窗口按窗口坐标系,两者的单位不一样。确定逻辑坐标系的原点。
例:
//设置逻辑坐标系x轴正向朝右,y轴正向朝下
CRect rect;
GetClientRect(rect);
SetWindowExt(1000,1000);
SetViewportExt(rect.right,rect.bottom);
//设置逻辑坐标系原点为客户区中心点
SetViewportOrg(-rect.right/2,-rect.bottom/2);
MFC绘图步骤:
l DC就相当于画布,确定了DC就确定了设备坐标系
l 确定设备坐标系单位和逻辑坐标系单位的转换关系
l 确定逻辑坐标系的轴方向和原点
l 调用绘图函数(绘图函数以逻辑坐标进行绘图)