& “窗口”与“视区”的概念往往不容易理解。“窗口”可以理解是一种逻辑坐标系下的矩形区域,而“视区”是设备坐标系下的矩形区域,根据“窗口”和“视区”的大小就可以确定x方向和y方向的比例因子:x方向比例因子=视区cx
/窗口cx,y方向比例因子=视区cy/窗口cy。
一、如果设置SetWindowExt(100,100),SetViewportExt(200,200),则x方向和y方向的比例因子都为2,说明窗口的1个逻辑坐标映射为视区的2个像素。在这种映射模式下,绘制100×100逻辑坐标的正方形,结果为200×200像素的正方形。
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rect;//定义客户区
GetClientRect(&rect);//获得客户区的大小
pDC->SetMapMode(MM_ANISOTROPIC);//设置映射模式
pDC->SetWindowExt(100,100);//设置窗口的范围
pDC->SetViewportExt(200,200);//设置视区的范围
pDC->SetViewportOrg(200,200);//设置视口的原点
pDC->Rectangle(-50,-50,50,50);
}

二、如果设置SetWindowExt(100,200),SetViewportExt(200,200),则x方向比例因子为2,y方向的比例因子为1,说明窗口x方向的1个逻辑坐标映射为视区的2个像素,窗口y方向的1个逻辑坐标映射为视区的1个像素。绘制100×100逻辑坐标的正方形,结果为200×100像素的长方形。
