• 大小: 1KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-21
  • 语言: 其他
  • 标签: 打印类  C++  绘制  

资源简介

打印内容绘制类,使用该类可轻松获得当前打印机的HDC,直接在HDC上绘制图像既可,类中集成了打印机的自动检测识别。

资源截图

代码片段和文件信息

#include “Printer.h“

CPrinter::CPrinter(void)
{
m_hdcprinter = NULL;
m_nPrinterWidth = 0;
m_nPrinterHeight = 0;
}

CPrinter::~CPrinter(void)
{ReleasePrinterHDC();}

HDC* CPrinter::GetPrinterHDC()
{
if(m_hdcprinter != NULL)
return &m_hdcprinter;
char szprinter[80];
char *szDevice*szDriver*szOutput;
//定义一个打印作业
static DOCINFO di={sizeof(DOCINFO)“printer“NULL};
m_pDi = &di;
// 得到设备字符串存入数组szprinter中
GetProfileString(“windows““device“““szprinter80);
// 将设备字符串分解
if(NULL!=(szDevice=strtok(szprinter““))&&
NULL!=(szDriver=strtok(NULL““))&&
NULL!=(szOutput=strtok(NULL““)))
{
// 创建一个打印机设备句柄
if((m_hdcprinter = CreateDC(szDriverszDeviceszOutputNULL)) != 0)
{
m_nPrinterWidth = GetDeviceCaps(m_hdcprinterHORZRES);
m_nPrinterHeight = GetDeviceCaps(m_hdcprinterVERTRES);
return &m_hdcprinter;
}
else
{
OutputDebugString(“Get printer HDC fail\n“);
return NULL;
}
}else
{
OutputDebugString(“Get printer fail\n“);
return NULL;
}
}
void CPrinter::ReleasePrinterHDC()
{
if(m_hdcprinter != NULL)
{
DeleteDC(m_hdcprinter);
m_hdcprinter = NULL;
}
}

bool CPrinter::StartPrint()
{
if(m_hdcprinter == NULL) return false;
if(StartDoc(m_hdcprinterm_pDi)>0) //开始执行一个打印作业
{
StartPage(m_hdcprinter); //打印机走纸开始打印
SaveDC(m_hdcprinter); //保存打印机设备句柄
return true;
}
return false;
}
void CPrinter::EndPrint()
{
RestoreDC(m_hdcprinter-1); //恢复打印机设备句柄
EndPage(m_hdcprinter); //打印机停纸停止打印
EndDoc(m_hdcprinter); //结束一个打印作业
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        979  2010-09-21 16:47  Printer.h

     文件       1657  2010-09-21 16:45  Printer.cpp

----------- ---------  ---------- -----  ----

                 2636                    2


评论

共有 条评论