本站首页    管理页面    写新日志    退出


«July 2025»
12345
6789101112
13141516171819
20212223242526
2728293031


公告

谦卑,荣誉,牺牲,英勇,怜悯,诚实,精神,公正。


我的分类(专题)

日志更新

最新评论

留言板

链接

 

 


Blog信息
blog名称:
日志总数:183
评论数量:698
留言数量:7
访问次数:3020770
建立时间:2005年12月29日




[编程学习]vc++实现打印功能
网上资源

newqiang 发表于 2006/3/9 10:53:26

vc++中如何实现打印功能的    [原创 2006-02-21 20:35:28 | 发表者: 鸽子情缘]     我们只需在源代码中加入以下几行代即可,如下:    void CPrintSameView::OnPrepareDC   (CDC* pDC, CPrintInfo* pInfo)    {    CView::OnPrepareDC(pDC, pInfo);pDC->SetMapMode(MM_ANISOTROPIC);//转换坐标映射方式    CSize size = CSize(800, 560);    pDC->SetWindowExt(size);      //确定窗口大小    //得到实际设备每逻辑英寸的像素数量    int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX);     int yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY);    //得到设备坐标和逻辑坐标的比例    long xExt = (long)size.cx * xLogPixPerInch/96 ;    long yExt = (long)size.cy * yLogPixPerInch/96 ;pDC->SetViewportExt((int)xExt, (int)yExt);//确定视口大小}用API函数. CreateDC函数的原形如下: HDC CreateDC( LPCTSTR lpszDriver, LPCTSTR lpszDevice, LPCTSTR lpszOutput, CONST DEVMODE *lpinitData ); 在TestDlg.cpp文件中找到OnPrint函数并作如下改动。 void CTestDlg::OnPrint() { // 增加如下代码 char szprinter[80]; char *szDevice,*szDriver,*szOutput; HDC hdcprint; // 定义一个设备环境句柄 //定逡桓龃蛴∽饕?/span> Static DOCINFO di={sizeof(DOCINFO),"printer",NULL}; // 得到设备字符串存入数组szprinter中 GetProfileString("windows","device",",,,",szprinter,80); // 将设备字符串分解 if(NULL!=(szDevice=strtok(szprinter,","))&& NULL!=(szDriver=strtok(NULL,","))&&=(szOutput=strtok(NULL,","))) // 创建一个打印机设备句柄 if((hdcprint=CreateDC(szDriver,szDevice,szOutput,NULL))!=0) { if(StartDoc(hdcprint,&di)>0) //开始执行一个打印作业 { StartPage(hdcprint); //打印机走纸,开始打印 SaveDC(hdcprint); //保存打印机设备句柄 // 输出一行文字 TextOut(hdcprint,1,1,"这是一个例子",12); // 输出一条直线 MoveToEx(hdcprint,20,20,NULL); LineTo(hdcprint,120,120); RestoreDC(hdcprint,-1); //恢复打印机设备句柄 EndPage(hdcprint); //打印机停纸,停止打印 EndDoc(hdcprint); //结束一个打印作业 MessageBox("打印完毕!","提示",MB_ICONINFORMATION); } // 用API函数DeleteDC销毁一个打印机设备句柄 DeleteDC(hdcprint); } else { MessageBox("没有默认打印机,或者没有安装打印机!"); return; } }  


阅读全文(10654) | 回复(1) | 编辑 | 精华
 


回复:vc++实现打印功能
网上资源

lockey(游客)发表评论于2006/4/5 16:01:56

楼主  有没有打印ACCESS文件的例子  为我发一份 好吗?急用。谢谢。我的邮箱lockey777@163.com


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144749926 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号