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);
}本想把按视图大小画 |_
可是画出来却只有一点点大
是不是要乘以什么系数啊
{
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);
}本想把按视图大小画 |_
可是画出来却只有一点点大
是不是要乘以什么系数啊
映射模式不对.这个是一个像素对应0.01毫米.
virtual int SetMapMode( int nMapMode );
nMapMode 有多种值,表示不同的绘图模式。
MM_HIMETRIC 绝对尺寸0.01毫米。
MM_TEXT 绝对尺寸1个像素。
还有几个可以参见msdn的解释,主要还是根据你的绘图要求选择图像模式。
pDC->DPtoLP(&rectClient)
rectClient是物理坐标,
而pDC->SetMapMode(MM_HIMETRIC);
再line时用的是逻辑坐标,所以要pDC->DPtoLP(&rectClient)