如下程序为何SetViewportExt中第二个参数是负的?为何SetViewportOrg中的第二个参数却不是负的?
CRect rectClient;

GetClientRect(&rectClient);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(1000, 1000);
pDC->SetViewportExt(rectClient.right, -rectClient.bottom);
pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 2); pDC->Ellipse(-500, -500, 500, 500);

解决方案 »

  1.   

    SetViewportExt设置的是视图,
    SetViewportOrg是设置原点.二者不同.
      

  2.   

    CRect rectClient;

    GetClientRect(&rectClient);//得到客户区大小
    pDC->SetMapMode(MM_ANISOTROPIC);//设置印射模式
    pDC->SetWindowExt(1000, 1000);//逻辑大小1000,1000
    pDC->SetViewportExt(rectClient.right, -rectClient.bottom);//视图大小为客户区大小,但方向相反(y轴)
    pDC->SetViewportOrg(rectClient.right / 2, rectClient.bottom / 2);//原点在客户区中心,(物理坐标) pDC->Ellipse(-500, -500, 500, 500);//画椭圆