我在做一个管路系统,基于对话框的,别的都做好了,就是打印这一块没做.
我想做一种类似收据的打印,包括数据头,内容,时间等.
我的想法就是获取打印机句柄以后,在打印机的虚拟"画布"上,用Textout()函数来画出来.
但是我最大的困难就是,如何获取打印机的句柄,是CDC,还是PDC,还是HDC?
还有,如何实现打印预览的功能,以及如何实现打印CCtrlList的打印.
我很菜鸟,请教各位高手;
感激不尽啊....
分不多了,请见谅啊.
最好能有详细的讲解啊,网上有个南航的人写的,我看过了,用不了,所以大家别推荐了啊.
跪求高手赐教..........
我想做一种类似收据的打印,包括数据头,内容,时间等.
我的想法就是获取打印机句柄以后,在打印机的虚拟"画布"上,用Textout()函数来画出来.
但是我最大的困难就是,如何获取打印机的句柄,是CDC,还是PDC,还是HDC?
还有,如何实现打印预览的功能,以及如何实现打印CCtrlList的打印.
我很菜鸟,请教各位高手;
感激不尽啊....
分不多了,请见谅啊.
最好能有详细的讲解啊,网上有个南航的人写的,我看过了,用不了,所以大家别推荐了啊.
跪求高手赐教..........
CPrintDialog pdlg(FALSE,PD_NOPAGENUMS|PD_NOSELECTION,this);
BOOL bFindPrinter=pdlg.GetDefaults();
if(!bFindPrinter)
return;
dc.Attach(pdlg.GetPrinterDC());
VERIFY(font.CreatePointFont(130, "宋体", &dc));//为DC创建字体
CFont* def_font = dc.SelectObject(&font);//保存现在的字体
TEXTMETRIC TextM;
dc.GetTextMetrics(&TextM);
//字体高度
int nCharHeight = (unsigned short)TextM.tmHeight;
//设置所需打印纸张数目
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Printing";
di.lpszOutput = (LPTSTR) NULL;
di.lpszDatatype = (LPTSTR) NULL;
di.fwType = 0;
dc.StartDoc(&di);
dc.StartPage();
int line = 1;
CString sftitle = "商品统计报表";
dc.TextOut(2,line*nCharHeight,sftitle,strlen(sftitle));
//字体
CFont font1;
VERIFY(font1.CreatePointFont(115, "宋体", &dc));//为DC创建字体
dc.SelectObject(&font1);//保存现在的字体
CString strtotal;
line++;
strtotal.Format("日期:%s",begin);
dc.TextOut(2,line*nCharHeight,strtotal, strlen(strtotal));