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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用, ' u6 J$ s! j" [5 j# M! S. L
所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况,
& u+ }! v& _6 J2 k0 F6 R/ k就马上传了上来。 </P>
. L3 l/ H4 l) H0 {; z7 C: h< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) + u) E7 V2 C! |
{
0 y* Y# T3 E% ?+ p7 ochar *ADevice, *ADriver, *APort;
4 ~/ R8 E* h- W5 L8 {" CTHandle DeviceMode; ( Z* [& C# a# m' y' m: y1 w
PDeviceMode DevMode; 5 N- f7 ]" ` N
int length,width; " o: @2 e Y" B6 B1 M
length=1400;
) I9 l( O3 R0 C width=2410;//设定自定义纸张的尺寸单位为0.1毫米 ' x% T" v3 C% j* i; a+ C
ADevice =new char[100]; . |+ j3 F; W, g$ x4 u) Y
ADriver =new char[100]; 5 ^& [/ F8 @& V6 f
APort =new char[100];
, r- v( E6 l+ P; A, M //获取打印机 . o% p! h. i8 w, _* z ~, }
Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode); 2 H Z- ~5 C' N- z7 I
//获取PDevMode结构 2 w4 P7 o) \; p' z- \
DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode); 8 I1 p- j- b% k" u. \" {6 Y$ p# A
//设定可以修改的值 8 `# g5 U- K; o- m
DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE; - G+ P% G5 g0 s/ E& G
DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH; : P1 Z7 {# e w! z
DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH; 5 r8 `5 V' t/ q* _
//设定要修改的值
0 B4 f- x( a& q* V DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张
9 `4 d5 _+ r0 y' [0 {' ?; E DevMode->dmPaperLength=length; 3 t$ M0 l @! J* m2 E! E& H
DevMode->dmPaperWidth=width; </P>
/ f8 `$ s& y+ X4 t< > //测试打印
/ s3 N- k' H) [1 t Printer()->BeginDoc();
; n4 ^, y% l& O" r" R& \ TextOut(Printer()->Handle, 0, 0, "-----------------",17);
7 s1 R8 [0 S( d Printer()->NewPage();
: O- n" A3 a, H7 U# @ TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); " @5 W2 z) p6 O
Printer()->NewPage();
5 Q( Q- S1 W' M$ q* V4 f, a/ g5 p Printer()->EndDoc(); 8 L d! h) B& R" ?
} </P> |
zan
|