SetWindowExt() 与SetViewportExt()

SetWindowExe设定窗口尺寸,SetViewportExt设定视口尺寸。
窗口尺寸以逻辑单位计算,视口尺寸以物理单位计算。
CRect rectClient;

GetClientRect(rectClient);//取窗口物理尺寸(单位:像素)
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(1000, 1000);//窗口逻辑大小:1000*1000,
pDC->SetViewportExt(rectClient.right, -rectClient.bottom);//改变Y坐标方向--viewport使用物理大小
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 2);//设置窗口中心点为坐标系原点--Viewport使用物理大小

pDC->Ellipse(CRect(-500, -500, 500, 500));//以逻辑单位画图---普通GDI API使用逻辑单位

默认方式下,物理/逻辑值是1:1关系,可换用。但使用SetWindowExt/SetViewportExt后两者不可混用。

你可能感兴趣的:(viewport)