C++Builder編程中動態更改自定義打印紙張 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
C Builder編程中動態更改自定義打印紙張作者:編程聯盟 因網上只有Delphi例子本人在用BCB編寫時發現有一些例子不能用, 所以一生氣就索性查了查資料自己寫了,怕網友們在用編程時也遇見此類情況, 就馬上傳了上來。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(); }網路志工聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]--- |
鈴鐺
初階會員 發表:33 回覆:81 積分:35 註冊:2002-03-13 發送簡訊給我 |
|
yunghant
一般會員 發表:7 回覆:9 積分:3 註冊:2002-10-05 發送簡訊給我 |
|
yunghant
一般會員 發表:7 回覆:9 積分:3 註冊:2002-10-05 發送簡訊給我 |
|
ADDi
一般會員 發表:1 回覆:7 積分:1 註冊:2004-10-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |