龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

CB编程中动态更改自定义打印纸张

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, 所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, 就马上传了上来。 void __fastcall TForm1::B

  因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,

  

所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,

  

就马上传了上来。

  

  

void __fastcall TForm1::BitBTn1Click(TObject *Sender)

  

{

  

char *ADevice, *ADriver, *APort;

  

THandle DeviceMode;

  

PDeviceMode DevMode;

  

int length,width;

  

length=1400;

  

width=2410;//设定自定义纸张的尺寸单位为0.1毫米

  

ADevice =new char[100];

  

ADriver =new char[100];

  

APort =new char[100];

  

//获取打印机

  

Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);

  

//获取PDevMode结构

  

DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);

  

//设定可以修改的值

  

DevMode->dmFields = DevMode->dmFieldsDM_PAPERSIZE;

  

DevMode->dmFields = DevMode->dmFieldsDM_PAPERLENGTH;

  

DevMode->dmFields = DevMode->dmFieldsDM_PAPERWIDTH;

  

//设定要修改的值

  

DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张

  

DevMode->dmPaperLength=length;

  

DevMode->dmPaperWidth=width;

  

  

//测试打印

  

Printer()->BeginDoc();

  

TextOut(Printer()->Handle, 0, 0, "-----------------",17);

  

Printer()->NewPage();

  

TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18);

  

Printer()->NewPage();

  

Printer()->EndDoc();

  

}

  

精彩图集

赞助商链接