pDC->SetMapMode(MM_TEXT);
pDC->Rectangle(0, 0, 200, 200);
pDC是一个CDC指针,没有对其进行其他设置,为什么画出来的图形看起来不是一个正方形呢?

解决方案 »

  1.   

    映射模式的改变不会解决问题,不同的是表示单位,但长宽比存在同意的比例.
    我试过用长宽分辨率的系数来修正还是不行.
    另外, int nXmillimeter = pDC->GetDeviceCaps(HORZSIZE);
    int nYmillimeter = pDC->GetDeviceCaps(VERTSIZE);
    在MM_TEXT下所得到的是长宽上每毫米有多少像素吗?
    MSDN上的解释说是设备信息,但没看到具体说法.
    我实际操作过程中发现nXmillimeter,nYmillimeter 改变显示器分辨率时始终为320和240.
      

  2.   

    HORZSIZE,VERTSIZE是显示器水平长度与垂直高度(以毫米为单位)。在Win32之后,它可能不是实际的高度,它们是根据字度高度计算出来的。