数学建模社区-数学中国

标题: C++Builder编程中动态更改自定义打印纸张 [打印本页]

作者: 韩冰    时间: 2005-1-26 12:24
标题: C++Builder编程中动态更改自定义打印纸张
<>因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, " N4 _. T- {* D2 I& h& N" X
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, + \7 M" [2 ?/ ?0 K9 V+ V
就马上传了上来。 </P>5 G5 I4 K/ d9 D5 z$ x4 ~0 K
<>void __fastcall TForm1::BitBtn1Click(TObject *Sender)
- W4 e+ y: K8 f. q{
& {$ L3 z- s3 I7 y4 a7 kchar *ADevice, *ADriver, *APort;
0 V* w% \  e* b. d) T# }  uTHandle DeviceMode; ' k1 c3 d: m1 n; }
PDeviceMode DevMode; ) Z* _" s/ }1 G9 ^% U" M
int length,width;
7 P- ~8 T/ m2 ~1 Y6 k  length=1400;
) e" Y3 n/ s. g  width=2410;//设定自定义纸张的尺寸单位为0.1毫米
' O( P+ [) N1 ~( X: }  ADevice =new char[100];
, n4 E) q9 o& h  J5 L  ADriver =new char[100]; ( Y9 J9 T; [  P2 o- E; O. K* j' O
  APort =new char[100];
( v  ~- K5 }. R9 m* H0 A) A8 B( o, b  //获取打印机 : ^  v  k* d; r# I0 |% T9 V0 ~
  Printer()-&gt;GetPrinter(ADevice, ADriver, APort,DeviceMode); 7 V5 ~; [1 ?. _- d( U. E% K1 w
  //获取PDevMode结构
: t9 I+ b  [& e. Z, X  DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
2 h3 r7 o7 g3 M* E* Z  //设定可以修改的值 : Q- j7 R! Y7 E  t3 a! m4 V
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERSIZE; 2 q4 m# o7 {' v/ \$ X* r
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERLENGTH; 7 e1 ?) N4 G8 H$ E' e" R  [# V$ ?
  DevMode-&gt;dmFields = DevMode-&gt;dmFields|DM_PAPERWIDTH;
" ]9 F" |) Y/ \1 i  //设定要修改的值
: p/ y  J4 E2 x- }2 X  DevMode-&gt;dmPaperSize=DMPAPER_USER;//设为自定义纸张
) I! c1 T8 u& x8 W5 k  DevMode-&gt;dmPaperLength=length; - g8 |/ Q- W5 h* G( J! O
  DevMode-&gt;dmPaperWidth=width; </P>6 K& c% B1 ~7 ^' P9 d8 o# D
<>  //测试打印
; t8 z3 X7 c% a0 ^. T' j! H  Printer()-&gt;BeginDoc(); % R5 c4 b7 u# C4 k
  TextOut(Printer()-&gt;Handle, 0, 0, "-----------------",17);
3 G3 v1 T3 f% u; M$ R. }: ?% P  Printer()-&gt;NewPage();
* o4 G* l2 N* e) p) J& i  TextOut(Printer()-&gt;Handle, 0, 0, "++++++++++++++++++",18); 2 }1 F# x, b0 }8 q; E! j/ b5 f
  Printer()-&gt;NewPage();   H1 b$ h* o( Z* G, D% T
  Printer()-&gt;EndDoc(); & x! ^- A3 I3 U: g4 Q5 ^1 [
} </P>




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5