看一下这段打印代码---不同打印机表现居然不同!
1.构造一个支持打印功能的单文档工程;
2.在View中定义如下变量
int m_ScalW;//设备的水平分辨率
int m_ScalH;//设备的垂直分辨率
3.在View.Cpp中增加OnInitialUpdate()函数,在函数中增加如下代码
CDC* pDC=GetDC();
ScalW=pDC->GetDeviceCaps(LOGPIXELSX);
ScalH=pDC->GetDeviceCaps(LOGPIXELSY);
4.在View.Cpp中增加OnPrepareDC()函数,在函数中增加如下代码
ScalW=pDC->GetDeviceCaps(LOGPIXELSX);
ScalH=pDC->GetDeviceCaps(LOGPIXELSY);
5.在OnDraw()中增加如下代码
CRect rc;
rc.top=0;
rc.left=0;
rc.right=(int)(ScalW*210/25.4);//将mm转为象素
rc.bottom=(int)(ScalH*297/25.4);
CBrush br(RGB(255,0,0));
CBrush* obr=pDC->SelectObject(&br);
pDC->FillRect(rc,&br);
CPen pen(PS_SOLID,3,RGB(0,255,0));
CPen* oPen=pDC->SelectObject(&pen);
pDC->MoveTo(rc.left,rc.top);
pDC->LineTo(rc.right,rc.bottom);
pDC->DrawText("第1 页",CRect(rc.left,rc.bottom-(int)(ScalH*15/25.4),rc.right,rc.bottom),DT_CENTER);
pDC->SelectObject(obr);
pDC->SelectObject(oPen);
6.编译程序,查看结果(我试了Epson LQ-1600K (180的分辩率)、HP Laser Jet 6L(600的分辩率)、Legend LJ6p+(600的分辩率)),没有一种打印完全符合我的要求,请各位高手不吝赐教!