打印问题,请教一下各位

cgh6697067 2009-11-12 09:26:34
采用CPrintDialog类实现打印

CPrintDialog printDlg (FALSE);
CDC dc;
dc.Attach (printDlg.GetPrinterDC ());
目前可以打出dc上的东西

因为dc上的图很小,为了节约纸张,要一次在纸上同时横向打印出三个相同的dc图,这个要怎么实现?思路如何?
...全文
74 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobob 2009-11-12
  • 打赏
  • 举报
回复
改变一下point就行了
cgh6697067 2009-11-12
  • 打赏
  • 举报
回复
int CBarcodeDlg::print(LPSTR text,CDC* pDC)
{
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;
}
fishion 2009-11-12
  • 打赏
  • 举报
回复
多次调用dc.BitBlt,调节第一个与第二个参数试试,呵呵
zyq5945 2009-11-12
  • 打赏
  • 举报
回复
把三个相同的dc图合在一个dc上?!!
lonelyhacker 2009-11-12
  • 打赏
  • 举报
回复
也可以这么说吧。

在你的打印函数里面肯定有绘制第一个图的。定义一个CRect rect;

用来记录你的坐标位置,把你第一个图的左上左下右上右下存到rect中。然后就以第一个图的左下右下

作为第二个图的开始。大概就这样吧。这里可以一个for循环就可以搞定了。
lonelyhacker 2009-11-12
  • 打赏
  • 举报
回复
计算第一个图的左下角右下角坐标,

第一个图的左下角和右下角坐标就是第二个图绘制的左上角和右上角。在该坐标处开始绘制第二个图。

依次类推。。
cgh6697067 2009-11-12
  • 打赏
  • 举报
回复
在线等答案
cgh6697067 2009-11-12
  • 打赏
  • 举报
回复
怎么改啊?
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,那么很多值在第一次已经被改变了

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧