如何用vs2010 的mfc做一个打印机驱动软件。有步骤、代码首先采纳。

2024-12-29 08:58:26
推荐回答(1个)
回答1:

windows提供了调用打印机的驱动,不需要你自己写,你要写的是调用而已,下面是我找的代码,看看是不是想要的:
 1、启动VisualC6.0新建个基于对话框应用Test在对话框窗体中加入个按钮(Button),设置这个Button属性
:ID=IDC_PRINT,CAPTION=\"打印\";
  2、使用ClassWizard类向导为该按钮添加个鼠标单击处理OnPr()
  3、修改TestDlg.cpp文件中OnPr();
  4、添加代码编译运行 3、代码
////////////////////////////////////////////
voidCTestDlg::OnPr
{
 charszprer[80];
 char*szDevice,*szDriver,*szOutput;
 HDChdcpr;//定义个设备环境句柄
 //定义个打印作业
 DOCINFOdi={(DOCINFO),\"prer\",NULL};
 //得到设备串存入szprer中
 GetProfileString(\"windows\",\"device\",\",,,\",szprer,80);
 //将设备串分解
 (NULL!=(szDevice=strtok(szprer,\",\"))&&NULL!=(szDriver=strtok(NULL,\",\"))&&
NULL!=(szOutput=strtok(NULL,\",\")))
  //创建个打印机设备句柄
  ((hdcpr=CreateDC(szDriver,szDevice,szOutput,NULL))!=0)
  {
   (StartDoc(hdcpr,&di)>0)//开始执行个打印作业
   {
    StartPage(hdcpr);//打印机走纸,开始打印
    SaveDC(hdcpr);//保存打印机设备句柄
    //输出行文字
    TextOut(hdcpr,1,1,\"热烈祝贺编程例子出版发行!\",16);
    RestoreDC(hdcpr,-1);//恢复打印机设备句柄
    EndPage(hdcpr);//打印机停纸,停止打印
    EndDoc(hdcpr);//结束个打印作业
    MessageBox(\"打印完毕!\",\"提示\",MB_ICONINFORMATION);
   }
   //用APIDeleteDC销毁个打印机设备句柄
   DeleteDC(hdcpr);
  }
  
  {
   MessageBox(\"没有默认打印机,或者没有安装打印机!\");
   ;
  }
 }