dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>C/C++>C/C++技术资料>文章内容
VC下打印机的使用
来源:编程爱好者 作者:
VC 5.0是开发Windows 95下应用程序的强大工具。本文将通过一

个具体实例讨论用VC打印文字和图形的一些技术。在Windows 95下,

显示器和打印机、绘图仪都被视为输出设备。系统默认的输出设备是

显示器。要使用打印机,首先需要创建一个指向打印机的设备环境句柄,

然后通过该句柄调用相关的绘图把所需的文字和图形输出至打印

机上。当打印结束后,删除这个设备环境句柄即可。

一、技术细节

当我们在Windows95下安装好打印机后,总是需要设置一个为默认

打印机,在Windows95的启动配置文件WIN.INI中[window]段中列出了

带有关键字device的默认打印机。如果在文件WIN.INI中有如下几行:

 

[windows]

[其他程序行]

device=EPSON LQ-1600K,EPSON24,LPT1:

在device后的字符串中就包含了系统中默认的打印机的三个重要

.它们依次是打印机的设备名是LQ-1600K,驱动程序名是EPSON24,

输出端口为LPT1。在程序中我们可调用APIGetProfileString从

WIN.INI文件中获得这个设备字符串。再将这个设备字符串进行分解,

获得这三个,作为参数用APICreateDC调用。如果调用成功,

则为默认打印机创建一个设备环境句柄,否则返回一个空值(NULL)。

CreateDC的原形如下:

HDC CreateDC(

LPCTSTR lpszDriver,

LPCTSTR lpszDevice,

LPCTSTR lpszOutput,

CONST DEVMODE *lpinitData

);

二、程序代码及说明

新建一个名为Test的工程,窗体类型为对话框(Dialog based)

模式。在窗体中加入一个按钮(Button),设置这个Button的:

ID=IDC_PRINT,CAPTION="打印"。在类向导中找到该Button

的单击对应的消息BN_CLICKED,增加其成员OnPrint。

在TestDlg.cpp文件中找到OnPrint并作如下改动。

void CTestDlg::OnPrint()

{

// 增加如下代码

char szprinter[80];

char *szDevice,*szDriver,*szOutput;

HDC hdcprint; // 定义一个设备环境句柄

 

//定义一个打印作业

Static DOCINFO di={sizeof(DOCINFO),"printer",NULL};

 

// 得到设备字符串存入数组szprinter中

GetProfileString("windows","device",",,,",szprinter,80);

// 将设备字符串分解

if(NULL!=(szDevice=strtok(szprinter,","))&&

NULL!=(szDriver=strtok(NULL,","))&&

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);

}

// 用APIDeleteDC销毁一个打印机设备句柄

DeleteDC(hdcprint);

}

else

{

MessageBox("没有默认打印机,或者没有安装打印机!");

return;

}

}

 

 

上一篇:Windows下实时行式打印系统设计   下一篇:获取有关显示器、鼠标及系统的配置信息
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·C语言数组排序小结
·Python 与 C++ 程序的简单实例对
·c++ 数组与指针
·C++中的内存管理(new、delete、
·如何用C语言开发DSP嵌入式系统
·如何用C语言开发DSP嵌入式系统
·Linux下C语言编程
·学习arm的话先看哪本书?
·C++初学者应该关心的优秀图书一
·利用C语言小程序来解决大问题
·用C语言写PHP扩展的步骤
·用C语言扩展PHP功能
  相关文章
·Windows下实时行式打印系统设计
·获取有关显示器、鼠标及系统的配
·利用WebBrowser控件创建自己的浏
·如何模拟《WORD》的窗口形式
·VC编程实现文本语音转换
·OICQ登录号码清除器实现原理
·用VC存取数据库中的大对象
·用VC 6.0实现串行通信的三种方法
·用Sockets接收和转换数字和字符
·FMD开发文集 -- CArchive原理
·利用模板技术简化VC中的代码
·如何自动截获输出到打印机的文本
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763