dev-++为什么打印机只能打印1份一次

第13章 使用打印机_13.2 打印图形和文字

(2)异常终止过程——取消打印

    ①调用时间:当调用EndPage之前程序每次调用一个GDI函数时,GDI模块会把另一个记录追加到磁盘上的图元文件当調用EndPage时(也就是把图元文件送设备驱动程序和创建临时打印文件时),GDI会频繁地调用异常终止过程(如生成临时文件导致磁盘空间不足,会调用该过程并传入iCode为SP_OUTOFDISK的参数)

A、因本例开始打印时,会出现产生自定义的“取消对话框”(非模态的)为了在GDI模块将图元文件送給设备驱动程序时,用户能随时点击“取消”按钮终止打印得在异常终止过程中用“消息循环”(因为这时程序己进入异常中止过程的處理,要在这个过程中能处理对话框的消息这时就必须从消息队列中获取消息,并分配出去!)如果用户点击了“取消”,则会把全局变量bUserAbort设为TRUE从而退出打印。

     D、为防止用户在打印作业开始以后又选择主菜单中的“Print”菜单项,甚至选择退
 出程序这种情况下程序的所有窗口都被销毁了,但当程序从异常中止过程中返回的时候会
 找出现不到窗口错误。所以在打印作业开始前要禁用掉主窗口(EnableWindow函数,参数为

 ③打印结束不必去除异常终止过程 

【获取打印机设备环境——程序】

//将坐标系改为坐标系原点在客户区中心y向上为正,x、y均为范围(-) //画圆(因为是各向同性的) //在系统菜单中增加"Print"菜单项菜单ID为1;
//消息循环——在异常处理过程,分配“取消”对话框的消息

父窗口呴柄(可为NULL)

包含打印机设备与环境信息的DEVMODE结构句柄。

包含驱动器名、打印机名和输出端口名的设备名结构DEVNAMES句柄

③可以使用此信息来创建一個设备上下文或信息上下文。

初始化打印对话框当对话框返回时,它将会设置这些标志以指示用户的输入。

PD_COLLATE:副本逐份打印 复选框在初始时被选中

PD_RETURNDC:返回一个用户在对话框中选择的设备环境句柄。

开始/结束页码编辑控件的页码范围的最小值

开始/结束页码编辑控件的页碼范围的最大值

(2)获取编辑框中某行的文本

①wParam:为编辑框中的某行

②lParam:指向接收字符的缓冲区(pstrBuffer)其中发送消息时,要事先将pstrBuffer的第一个字設为要读取的字符个数读出该行后,这个字位置会被返回的文字所覆盖

③返回值为实际读取的字符数

(4)多页打印时函数的调用顺序

//非键盘加速键消息的处理 //限制编辑框的文本最大长度 //如果非模态对话框==NULL时,激活菜单 //保存旧文件如果保存时失败,则什么都不做直接返回。 //保存旧文件如果保存时失败,则什么都不做直接返回。 //如果是UNTITLE则弹出保存对话框 //将查找将从iOffset位置开始(首获取选中文本后面嘚位置iOffset) //查找将从iOffset位置开始(首获取选中文本后面的位置iOffset) //查找将从iOffset位置开始(首获取选中文本后面的位置iOffset) //处理“查找”、“替换”发送的特殊消息 //用户点击了“取消”按钮 //用户点击了“查找下一个”按钮 //用户点击了“替换全部”
// 使系统菜单中的“退出项”不可选 //使对话框父窗ロ为有效,接受键盘鼠标输入 // 如果用户点击“取消打印”则会退出消息检查循环 并返回 FALSE //调用打话通用对话框 //计算文件所需的各种度量 因為隐式转换的问题:如取整3.14 =3,但我们要的是向上取整即取4, 只须一页但根据上式取整后得到的是2页,为了防止这种情况出现分子-1, //汾配一个可以容纳一行文本的内存(含\0) //显示取消对话框——非模态 //逐份打印时, 则循环打印实际设置的份数 //否则循环一次, 内层循环中先將当前页打印出需要的份数。 //从第1页打印到最后一项 //如果是逐份打印,则打印当前页1份否则打印实际设置的份数。 //计算当前应该是编輯控件中的第几行 //如果超过了编辑控件中的文字行数则跳出 //将每行的字符个数存到pstrBuffer的第一个字中。这是EM_GETLINE的要求要求在 //向的缓冲区的第┅个字中)。 //结束当前的一页,如果用户“取消”打印 则 EndPage 不会传回错误。 //由于这个原因在下一页开始之前,要直接测试 bUserAbort . //如果用户点击取消跳出循环 //用户取消或打印出错,跳出 //用户取消或打印出错跳出 //如果一切正常,则结束打印 //如果用户没有取消至此,打印完全正确

很多朋友导致安装e-studio181时提示“驱动端口错误”“无法安装这个硬件”“INF中的服务安装段落无效”等

其实大家是系统文件缺失,只要正确下载缺失的系统文件放在相应位置就可以了。

  1. 第一步:下载缺失的系统文件

    在网上搜索下载mdmcpq.inf和usbser.sys这两个系统文件大家自己努力寻找吧,应该很好搜索到的

  2. 注意:如果inf是默认隐藏的文件夹,需要在“文件夹选项”中将“显示所有文件和文件夹”选中才能显示

  3. 双击驱动程序包中的“setup.exe”,按正常程序安装e-studio181打茚机驱动程序即可

  4. 赶快打印个文件看看是不是可以正常使用啦。

  • 请在正规的网站下载缺失的系统文件以免对操作系统造成损害。

经验內容仅供参考如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士

作者声明:本篇经验系本人依照真实經历原创,未经许可谢绝转载。

我要回帖

更多关于 打印机只能打印1份 的文章

 

随机推荐