采用CPrintDialog类实现打印 CPrintDialog printDlg (FALSE);
CDC dc;
dc.Attach (printDlg.GetPrinterDC ());
目前可以打出dc上的东西因为dc上的图很小,为了节约纸张,要一次在纸上同时横向打印出三个相同的dc图,这个要怎么实现?思路如何?
CDC dc;
dc.Attach (printDlg.GetPrinterDC ());
目前可以打出dc上的东西因为dc上的图很小,为了节约纸张,要一次在纸上同时横向打印出三个相同的dc图,这个要怎么实现?思路如何?
{
CPen pen,*pOldPen;
int High,i;
LPSTR str=text;
//设定条码左上脚初始点
CPoint point(50,50); //画笔为黑色
pen.CreatePen (PS_SOLID,int(m_CodeWidth*rato),RGB(0,0,0));
//将画笔选入打印设备环境
pOldPen=pDC->SelectObject (&pen);
High=int(m_CodeHigh*rato); while(*str)
{
for(i=0;i<(*str-'0');i++)
{
pDC->MoveTo (point);
pDC->LineTo (point.x,point.y+High);
point.x+=int(m_CodeWidth*rato);
}
str++;
point.x+=int(m_CodeWidth*rato)*(*str-'0');
str++;
}
pDC->TextOut(point.x+10,point.y+10,"13959113180");
//上面是个条形码的dc,现在我就是想把上面这个图形横向一次打印出3个来
pDC->SelectObject (pOldPen);
pen.DeleteObject ();
return 0;
}
while(*str)
{
for(i=0;i <(*str-'0');i++)
{
pDC->MoveTo (point);
pDC->LineTo (point.x,point.y+High);
point.x+=int(m_CodeWidth*rato);
}
str++;
point.x+=int(m_CodeWidth*rato)*(*str-'0');
str++;
}
上面这个循环是单个条码图形,如果贴三次相同代码,后面两次改一下point,那么很多值在第一次已经被改变了