为什么不能打印条形码
发表在C语言图书答疑 2010-07-19
是否精华
版块置顶:
你好,我买了一本《视频学VISUAL C++》,第308页的例10.14有条形码打印代码,我用你们的实例代码编译通过了,但打印机输不出条形码,请问这是怎么回事,谢谢!
   注:我用HP1007打印机测试.
分享到:
精彩评论 2
8031
学分:0 LV1
2010-07-19
沙发
读者您好
您在点击打印的时候,是否出现“打印”对话框,
此时主对话框中的条形码是否显示了
ynkkn
学分:0 LV1
TA的每日心情
开心
2022-12-27 20:34:43
2010-07-20
板凳
你好,您在点击打印的时候,没有出现“打印”对话框,此时主对话框中的条形码已显示了,打印机有动作,出纸了,条码出不来,打印机已确认是正常的,代码如下:
//构造打印对话框
CPrintDialog m_print(false,PD_ALLPAGES | PD_USEDEVMODECOPIES |PD_RETURNDEFAULT| PD_NOPAGENUMS | PD_HIDEPRINTTOFILE | PD_NOSELECTION,this);

m_barcode.SetBackColor(RGB(255,255,255));
if (m_print.DoModal()==IDOK)
{
CDC dc1 ;
dc1.Attach(m_print.GetPrinterDC()); //将dc1关联到打印机句柄

CDC dc;
dc.Attach(m_barcode.GetDC()->m_hDC); //将dc关联到条形码句柄
CString str;


CRect rect;
m_barcode.GetClientRect(rect); //获取条形码的客户区域

rect.DeflateRect(1,1,1,1);
int screenx,screeny;
int printx,printy;
double ratex,ratey;

//确定打印机与屏幕的像素比率
screenx =  dc.GetDeviceCaps(LOGPIXELSX);
screeny =  dc.GetDeviceCaps(LOGPIXELSY);

printx =  dc1.GetDeviceCaps(LOGPIXELSX);
printy =  dc1.GetDeviceCaps(LOGPIXELSY);

ratex = (double)(printx)/screenx;
ratey = (double)(printy)/screeny;

dc1.SetBkMode(TRANSPARENT);
//开始打印
dc1.StartDoc("FirstDoc");
dc1.StretchBlt(1,1,(int)(rect.Width()*ratex),(int)(rect.Height()*ratey),&dc,1,1,rect.Width(),rect.Height(),SRCCOPY);
dc1.EndDoc();
}
首页上一页 1 下一页尾页 2 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照