很实用的VC打印代码
来源:互联网 发布:网易股票分时数据 编辑:程序博客网 时间:2024/06/08 13:25
///选择打印机对话框 CDC memDC; HDC hdcPrint = NULL; CPrintDialog dlg(FALSE); if (true) //打印按钮,不弹出选择对话框,获取默认打印设备 { PRINTDLG printInfo; ZeroMemory(&printInfo,sizeof(printInfo)); //清空该结构 printInfo.lStructSize = sizeof(printInfo); printInfo.hwndOwner = 0; printInfo.hDevMode = 0; printInfo.hDevNames = 0; //这个是关键,PD_RETURNDC 如果不设这个标志,就拿不到hDC了 //PD_RETURNDEFAULT 这个就是得到默认打印机,不需要弹出设置对话框 printInfo.Flags = PD_RETURNDC | PD_RETURNDEFAULT | PD_ALLPAGES; PrintDlg(&printInfo);//调用API拿出默认打印机 DWORD rst = CommDlgExtendedError();//看看出错没有 if(rst != 0) {//出错了,清空标志再次调用API,此时就会弹出打印设置对话框供用户选择了 printInfo.Flags = 0; PrintDlg(&printInfo); } hdcPrint = printInfo.hDC; //得到打印DC,输出到打印 } else //弹出对话框选择打印设备 { dlg.DoModal(); hdcPrint = dlg.GetPrinterDC(); } if(hdcPrint == NULL) { AfxMessageBox(_T("打印机初始化失败!")); return; } memDC.Attach(hdcPrint); if(memDC.m_hDC == NULL) return; int nPaperSize_X = memDC.GetDeviceCaps(HORZSIZE); // 纸张宽度 int nPaperSize_Y = memDC.GetDeviceCaps(VERTSIZE); // 纸张高度 int xP = memDC.GetDeviceCaps(LOGPIXELSX); //x方向每英寸像素点数 int yP = memDC.GetDeviceCaps(LOGPIXELSY); //y方向每英寸像素点数 double xPix = (DOUBLE)xP*10/254; //每 mm 宽度的像素 double yPix = (DOUBLE)yP*10/254; //每 mm 高度的像素 TCHAR szTitle[] = _T("ecg_printer"); //真正打印部分 static DOCINFO di = {sizeof (DOCINFO), szTitle} ; //开始文档打印///////////////////////////////////////// start print ////////////////////////////////////////////////////////// if(memDC.StartDoc( &di ) < 0) // startdoc-----enddoc { AfxMessageBox(_T("连接到打印机化败!")); } else {//开始页 if(memDC.StartPage() < 0) { AfxMessageBox(_T("打印失败!")); memDC.AbortDoc(); return; } else {//上横线 memDC.MoveTo(100, int(10 * yPix)); memDC.LineTo(100, int(110 * yPix) ); memDC.MoveTo(200, int(10 * yPix)); memDC.LineTo(200, int(160 * yPix) ); memDC.MoveTo(300, int(10 * yPix)); memDC.LineTo(300, int(210 * yPix) ); memDC.MoveTo(400, int(10 * yPix)); memDC.LineTo(400, int(260 * yPix) ); memDC.EndPage(); } memDC.EndDoc(); }memDC.DeleteDC();
打印功能经常用到,也整理了好多次了。但是每次用完后都随手丢了。这次记录下来,以防后查。
0 0
- 很实用的VC打印代码
- 一个很实用的VC系统托盘例子
- 关于vc 打印程序的一些有用代码
- 简单实用的打印报表
- VC下的打印
- VC数据库ADO操作实用代码
- 简单实用的打印函数执行日志的代码WriteLog函数
- Android开发之封装log打印日志的工具类,实用logutils详细代码
- vc 的实用控件,皮肤
- 很有实用价值的神奇代码
- 一些很实用的JS代码
- jQuery很实用的代码,未完待续
- 珍藏的实用代码
- 实用的JavaScript代码
- 实用的js代码
- 比较实用的代码
- 实用的代码片段
- JQuery实用的代码
- Android studio安装之前配置环境变量
- 获取手机唯一标识符(UUID+KeyChain)
- 《基于MFC的OpenGL编程》Part 11 Creating and Using Display Lists
- asp.net 浏览器文件下载
- 算法补习-第五天-查找(中)
- 很实用的VC打印代码
- 1087. All Roads Lead to Rome (30)<最短路径,在最短路径上操作>
- PyQt 5 入门指导教程
- CDN内容发布网络
- python爬虫基础知识
- Linux NFS服务器的安装与配置
- 软件开发大图景:两个维度,四个象限
- php中接口 强大之处 php_curl
- MFC对MYSQL数据库操作