C++Builder编程中动态更改自定义打印纸张

王朝vc·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

C++Builder编程中动态更改自定义打印纸张

C++Builder编程中动态更改自定义打印纸张 C++Builder编程中动态更改自定义打印纸张

因网上只有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->dmFields|DM_PAPERSIZE;

DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;

DevMode->dmFields = DevMode->dmFields|DM_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();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航