我写一个基于Dialog 的程序。想打印,我们知道在View/Document 中打印的处理,特别是所见既所得的打印处理相对简单。可是,现在我要在没有支持View/Document架构的Dialog程序中写打印的程序,是不是挺麻烦?怎样做?直接用打印的SDK?请高手指教一二。在下谢谢先。
解决方案 »
- 【恳请帮助】VC 6 中列表控件参数pszText的内容显示乱码,请求大虾们帮助!!
- Html table 解析问题
- ListCtrl 中 NMLISTVIEW 的 lParam 的问题
- CListView的问题
- 高分求imgdecmp.lib,哪里有imgdecmp.lib下载?
- CSerialPort 问题,100分, 关于sendmessge
- 我现在有一个OCX控件,在其中添加了我自己的RICHEDITCTRL控件,在TEST CONTAINER中测试很好,但是在网页上浏览的时候,只能够输入文字,
- BCG库程序问题,请高手帮助
- 那里有 魔戒 2 免费下载?
- POPUPWINDOW的阴影实现
- 今天收到了MSDN技术支持小组关于VC.NET 2002下 BYTE 类型在调试中数据显示不正常的回复。证实VC.NET 2002在这个方面有一个Bug
- 有没有这样的工具,可将一个安装程序软件打包成一个可执行的安装软件,自动执行就开始安装,不会象winzip还要提示解压到某文件夹。
我也遇到了同样的问题 在codeproject看到这么一篇文章 算是把准备工作都做好了 剩下就看你了 ^^
http://www.codeproject.com/printing/printing_wo_docview.asp
27 Dec 2002
An MFC extension library, so your dialogs can have easy print/print preview support.
http://www.codeproject.com/printing/PrintExtension.asp
PRINTDLG pd;
pd.lStructSize = sizeof(PRINTDLG);
pd.Flags = PD_RETURNDC;
pd.hDC = NULL;
pd.hwndOwner = NULL;
pd.hInstance = NULL;
pd.nMaxPage = 1;
pd.nMinPage = 1;
pd.nFromPage = 1;
pd.nToPage = 1;
pd.nCopies = 1;
pd.hDevMode = NULL;
pd.hDevNames = NULL; //显示打印对话框,由用户来设定纸张大小等。
if(!PrintDlg(&pd))
MessageBox("不能显示打印对话框");
ASSERT(pd.hDC!=NULL); int nHorRes = GetDeviceCaps(pd.hDC, HORZRES);
int nVerRes = GetDeviceCaps(pd.hDC, VERTRES);
int nXMargin = 2;
int nYMargin = 2;
TEXTMETRIC tm;
GetTextMetrics(pd.hDC, &tm);
int nCharHeight = tm.tmHeight;
int nCharWidth = tm.tmAveCharWidth;
DOCINFO di;
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = "Lottery Printing";
di.lpszOutput = (LPTSTR) NULL;
di.lpszDatatype = (LPTSTR) NULL;
di.fwType = 0;
StartDoc(pd.hDC, &di);
StartPage(pd.hDC); TextOut(pd.hDC, 1, 1 , "要打印什么都行", 14);//一个汉字占2个字节
EndPage(pd.hDC);
EndDoc(pd.hDC);
//打印结束
DeleteDC(pd.hDC);