- 在线时间
- 0 小时
- 最后登录
- 2007-9-23
- 注册时间
- 2004-9-10
- 听众数
- 3
- 收听数
- 0
- 能力
- 0 分
- 体力
- 9975 点
- 威望
- 7 点
- 阅读权限
- 150
- 积分
- 4048
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1893
- 主题
- 823
- 精华
- 2
- 分享
- 0
- 好友
- 0

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, 8 D4 S& Q- \& N& h% O7 c
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, 5 v' z; _: Z& A3 T7 K3 o
就马上传了上来。 </P>' l, e: h) b/ n" ]1 X' A2 W
< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) ! k3 q, s9 J8 e# z, C
{ 0 b# H, a" V* Z3 G! U3 P }
char *ADevice, *ADriver, *APort; . l$ Q, q$ q f7 [$ @- ?
THandle DeviceMode; 8 D7 U3 y/ d# `! \
PDeviceMode DevMode; ) p0 p3 n, V( d; [+ q# ?( u& ?
int length,width;
/ A$ r' F0 @8 C length=1400; 9 k1 ]; i2 _1 [
width=2410;//设定自定义纸张的尺寸单位为0.1毫米
8 @7 [1 {& m3 E2 a' l ADevice =new char[100]; 8 A5 n% ?$ K3 i0 f) u. v
ADriver =new char[100]; - x+ x3 Z9 B" R9 A% a( T
APort =new char[100];
. w h _5 u$ o. s //获取打印机 , T. O( u/ c0 M( I6 H) t/ ]
Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode); , y; [1 p, \3 _. y# D( [
//获取PDevMode结构 1 i* m: s6 P! ?; z: B T% q0 F
DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
* T- O+ m+ I! k //设定可以修改的值 * O: b7 h& r4 \8 s' M- ^. x
DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
' b3 F+ w2 [1 [8 K% H& j' x DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH;
& Y! j5 m4 N( ^ t0 } DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
( O4 _- i8 F1 w+ ~1 \3 F //设定要修改的值
. o9 ~8 m1 G/ y. i) B5 E, q b& b DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
% O3 z8 k S. [! [% }& a DevMode->dmPaperLength=length;
1 f* b! ]8 x( I7 A4 v DevMode->dmPaperWidth=width; </P>
0 C7 |% q7 H2 C) E< > //测试打印 $ ~ k, r i/ ]. M# @ y
Printer()->BeginDoc(); i( B0 f3 R" T7 f* z7 O, k
TextOut(Printer()->Handle, 0, 0, "-----------------",17); ' \/ t' f9 v. k1 ~2 j0 c
Printer()->NewPage();
5 u; c/ {. j3 M! M/ J TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); 7 u- P6 m2 v3 S* C$ A9 @+ |
Printer()->NewPage(); * ? o6 W; M: I/ B
Printer()->EndDoc();
0 y: J" _3 R3 n; f# {0 m4 Q} </P> |
zan
|