我的是基于FormView的,打印不是所见所得,我在OnPrint函数中写了打印代码:这里采用的是什么单位,像素?
譬如我要画一个A4纸大小的矩形框(实际大小210mm×297mm),该如何写?
pDC->Rectangle(0,0,××,××);其中××应该是多少?
还有不同打印机(不同分辩率)打印出来的是不是大小不一样?如何解决?void CPrint1View::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
CPen* oldPen=pDC->GetCurrentPen();//记录当前(默认)画笔
CFont myFont;//字体
myFont.CreatePointFont(400,"宋体");
pDC->SelectObject(&myFont); CPen myPen(PS_SOLID,7,RGB(0,0,0)); //中间数字是线条粗细
pDC->SelectObject(&myPen);
pDC->Rectangle(0,0,9917,14031);
pDC->SelectObject(oldPen);//恢复为默认画笔
pDC->MoveTo(100,200);
pDC->LineTo(500,200);
pDC->MoveTo(100,300);
pDC->LineTo(500,300);
pDC->TextOut(120,110,str); ReleaseDC(pDC);
}这是我的代码

解决方案 »

  1.   

    是不是应该调用:OnPrepareDC(pDC),然后再打印?
      

  2.   

    OnPrepareDC()由Framework调用的吧!在OnPrint()中不用手动调用吧!
      

  3.   

    这跟选的坐标系有关,pDC->SetMapMode(MM_TEXT);
    MM_HIENGLISH(高精度英制坐标系)1单位 = 0.001英寸         
    MM_LOENGLISH(低精度英制坐标系)1单位 = 0.01英寸      
    MM_HIMETRIC(高精度公制坐标系) 1单位 = 0.01毫米          
    MM_LOMETRIC(低精度公制坐标系) 1单位 = 0.1毫米         
    MM_TWIPS(排版坐标系) 1 单位 = 1缇 = 1/1440英寸