程序如下:
procedure TForm2.Button1Click(Sender: TObject);
var
p: TPoint;
rr,r:trect;
begin
rr:= rect(10,10,300,200) ;
try
Escape(Printer.Handle, GETPRINTINGOFFSET, 0, nil, @p);
XOff := p.X;
YOff := p.Y;
pXppi := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
pYppi := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
Printer.BeginDoc;
meta:=tmetafile.Create;
metac:= TMetafileCanvas.Create(meta,Printer.Canvas.Handle) ; metac.Brush.style := bsClear;
metac.Font.Name := 'Arial';
metac.Font.PixelsPerInch := pYppi;
metac.Font.Size := 10;
r.Top := pYppi;
r.Left := pXppi;
r.Right := 5*pXppi;
r.Bottom := 2*pYppi;
Dec(r.Left, XOff);
Dec(r.Right, XOff);
Dec(r.Top, YOff);
Dec(r.Bottom, YOff);
metac.Pen.Style := psDash;
metac.Pen.Style := psSolid;
DrawText(
paintbox1.Canvas.Handle,
pchar('fffffff'), Length(pchar('fffffff')), r, DT_CALCRECT or DT_EXPANDTABS or
DT_NOPREFIX or DT_WORDBREAK ) ;
form2.PaintBox1.Canvas.StretchDraw(rect(10,10,300,200), Meta);
form2.Caption:=inttostr(meta.Height);
问题:为什么我得到的meta.height还是0,并且程序没有反应的,虽然可以运行!!,难道它没画吗???
procedure TForm2.Button1Click(Sender: TObject);
var
p: TPoint;
rr,r:trect;
begin
rr:= rect(10,10,300,200) ;
try
Escape(Printer.Handle, GETPRINTINGOFFSET, 0, nil, @p);
XOff := p.X;
YOff := p.Y;
pXppi := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
pYppi := GetDeviceCaps(Printer.Handle, LOGPIXELSY);
Printer.BeginDoc;
meta:=tmetafile.Create;
metac:= TMetafileCanvas.Create(meta,Printer.Canvas.Handle) ; metac.Brush.style := bsClear;
metac.Font.Name := 'Arial';
metac.Font.PixelsPerInch := pYppi;
metac.Font.Size := 10;
r.Top := pYppi;
r.Left := pXppi;
r.Right := 5*pXppi;
r.Bottom := 2*pYppi;
Dec(r.Left, XOff);
Dec(r.Right, XOff);
Dec(r.Top, YOff);
Dec(r.Bottom, YOff);
metac.Pen.Style := psDash;
metac.Pen.Style := psSolid;
DrawText(
paintbox1.Canvas.Handle,
pchar('fffffff'), Length(pchar('fffffff')), r, DT_CALCRECT or DT_EXPANDTABS or
DT_NOPREFIX or DT_WORDBREAK ) ;
form2.PaintBox1.Canvas.StretchDraw(rect(10,10,300,200), Meta);
form2.Caption:=inttostr(meta.Height);
问题:为什么我得到的meta.height还是0,并且程序没有反应的,虽然可以运行!!,难道它没画吗???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货