怎么在视屏显示器上准确绘制10mm*10mm的矩形?
我目前的做法是:CRect m_rect;
m_rect.left=100;
m_rect.top=100;
CPen pen(PS_SOLID, 1, RGB(255,255,255));
CPen *pOldPen=dc.SelectObject(&pen);
m_rect.right=100+100/25.4*dc.GetDeviceCaps(LOGPIXELSX);
m_rect.bottom=100+100/25.4*dc.GetDeviceCaps(LOGPIXELSY);
dc.Rectangle(m_rect);
dc.SelectObject(pOldPen);但结果不对啊, 不是100mm*100mm的。

解决方案 »

  1.   

    参考一下这个吧
    VC 坐标系的建立
    http://hi.baidu.com/gis%C5%DA/blog/item/5e9cf6010f174582d43f7ca4.htmlvc坐标系详解
    http://blog.sina.com.cn/s/blog_4e0c21cc0100ard5.html
      

  2.   

    使用 MM_HIMETRIC模式, 则逻辑单位为 0.001mm
    在你的程序中设置映射模式
    dc.SetMapMode(MM_MM_HIMETRIC);
    dc.Rectangle(CRect(0,0,1000,-1000))
    就是一个10mm*10mm的矩形
    MM_HIMETRIC模式下y轴的方向是远点向下为负值
    矩形的坐标就根据你自己程序要求来了
      

  3.   

    错了  逻辑单位是0.01mm sorry
      

  4.   

    LZ,你用的度量单位不是mm等长度单位,而是像素(PIXEL),一般一个像素的长宽约为0.22MM,若要使用长度单位则参考楼上几位大牛的