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

我的地盘我做主
该用户从未签到
 |
< >因网上只有Delphi例子本人在用CB编写时发现有一些例子不能用,
) t- |0 t* \. |, ]7 B3 S所以一生气就索性查了查资料自己写了,怕网友们在用编程时也遇见此类情况, - k+ Y9 H! R3 ?" c6 T' M
就马上传了上来。 </P>0 j# N# L& p( r' }2 D8 F% j) D
< >void __fastcall TForm1::BitBtn1Click(TObject *Sender) ' U1 Q3 I/ ?, b3 _+ n1 \
{
* U* v G5 J4 U0 h" X, H5 p$ {1 Gchar *ADevice, *ADriver, *APort;
v; Y. Z4 J$ `THandle DeviceMode;
8 T: a+ N6 b8 w% c0 @& YPDeviceMode DevMode;
! W6 E( D1 [4 L' x% ]int length,width; + @8 t, @$ ? y8 _
length=1400; + N h1 D v$ q( J, |- P, J
width=2410;//设定自定义纸张的尺寸单位为0.1毫米
8 s% W: S& D! F s+ g ADevice =new char[100];
6 l" C p* s/ W( ?: t2 L ADriver =new char[100];
8 W8 ~+ l; t j) ?1 |$ t! b APort =new char[100];
) D8 |0 P: ~6 U3 K r //获取打印机
) k6 R. G6 o, P8 ^ Printer()->GetPrinter(ADevice, ADriver, APort,DeviceMode);
% i- T0 f4 \5 H- F7 p' l4 h //获取PDevMode结构
V$ e3 h9 J3 a; O3 G0 N& N DevMode =(_devicemodeA*) GlobalLock((void *)DeviceMode);
0 f! ~' y: P; v( u' _9 W //设定可以修改的值
8 g# p! `) f7 I( x$ u# ~& n! B DevMode->dmFields = DevMode->dmFields|DM_PAPERSIZE;
) c- U! K- [3 ]% l8 ?9 ^ DevMode->dmFields = DevMode->dmFields|DM_PAPERLENGTH; & @ F9 B a# [1 k9 f
DevMode->dmFields = DevMode->dmFields|DM_PAPERWIDTH;
4 i) R+ ]# s2 e$ f- t7 k6 p3 D //设定要修改的值
& o$ y# s& V @ DevMode->dmPaperSize=DMPAPER_USER;//设为自定义纸张 9 U1 B& u6 H) h& k
DevMode->dmPaperLength=length;
) @' Z7 }. V( o5 S8 `" r0 @ DevMode->dmPaperWidth=width; </P>% a/ z* o z( b: m9 J6 y
< > //测试打印
8 H& k: C/ M* F% k7 @- Y# B Printer()->BeginDoc(); 9 y6 H" P+ d/ L3 `- m. d
TextOut(Printer()->Handle, 0, 0, "-----------------",17);
6 E! n _" k* f Printer()->NewPage(); 4 P+ S1 J0 W4 o% j5 E3 {1 o3 K
TextOut(Printer()->Handle, 0, 0, "++++++++++++++++++",18); 8 ~' k2 Q' Q' t- L: C2 y& d8 F
Printer()->NewPage(); 6 M- j: W# ? t" X4 I/ D
Printer()->EndDoc();
) c# u# |, a: i} </P> |
zan
|