void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here CRect rectClient;
GetClientRect(rectClient); pDC->SetMapMode(MM_HIMETRIC);
pDC->SetViewportOrg(rectClient.left,rectClient.bottom); CPen newPen(PS_SOLID,0,(COLORREF)0);
CPen *oldPen=pDC->SelectObject(&newPen);

pDC->MoveTo(0,0);
pDC->LineTo(0,(rectClient.bottom)); pDC->MoveTo(0,0);
pDC->LineTo((rectClient.right),0); pDC->SelectObject(oldPen);
}本想把按视图大小画  |_
可是画出来却只有一点点大
是不是要乘以什么系数啊

解决方案 »

  1.   

    pDC->SetMapMode(MM_HIMETRIC);
      映射模式不对.这个是一个像素对应0.01毫米.
      

  2.   

    函数原型
    virtual int SetMapMode( int nMapMode );
    nMapMode 有多种值,表示不同的绘图模式。
    MM_HIMETRIC 绝对尺寸0.01毫米。
    MM_TEXT     绝对尺寸1个像素。
    还有几个可以参见msdn的解释,主要还是根据你的绘图要求选择图像模式。
      

  3.   

    加上一句
    pDC->DPtoLP(&rectClient)
      

  4.   

    这是物理坐标转换成逻辑坐标,GetClientRect(rectClient);
    rectClient是物理坐标,
    而pDC->SetMapMode(MM_HIMETRIC);
    再line时用的是逻辑坐标,所以要pDC->DPtoLP(&rectClient)