可以模拟CView类的打印;参考文件C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\MFC\SRC\VIEWCORE.CPP的409行至477行,以及C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\VC98\MFC\SRC\VIEWPRNT.CPP文件,对你应该会有帮助的!

解决方案 »

  1.   

    请看下面的文章http://www.csdn.net/expert/topic/588/588846.xml?temp=.7269251
      

  2.   

    建立一个函数响应你的打印消息,声明一个CPrinterDialog 不用将它DoModal()然后GetPrinterDC(),在这个DC上面画图就可以了。
    具体可以参考MSDN
      

  3.   

    通过API打印
    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);}// 用API函数DeleteDC销毁一个打印机设备句柄 DeleteDC(hdcprint);}else{MessageBox("没有默认打印机,或者没有安装打印机!");return;