怎样打印当前窗口中的图形?(50分)

  • 主题发起人 主题发起人 ydiandian
  • 开始时间 开始时间
Y

ydiandian

Unregistered / Unconfirmed
GUEST, unregistred user!
利用paintbox绘制的图形,要将其中的指定部分打出来,
范围的坐标可以确定,用怎么的方法可以打印出来呢?
 
先把它Copy到一个Canvas上或Image上 再打印出来
 
首先将PaintBox里绘制的部分保存在一幅位图,然后就是位图的打印了。

BitBlt(bmp.canvas.handle,0,0,bmp.width,bmp.height,paintbox.canvas.handle,x,y,srccopy);
//x,y为你制定的起始坐标
//bmp.width,bmp.height为你确定的打印部分的宽度和高度

var
ScaleX,ScaleY :Integer;
R :TRect;
begin
if Printer.Printers.Count=0 then
begin
ShowMessage('请首先安装打印机');
Exit; //跳出N11Click
end;
if not MainPrintDialog.Execute then Exit
else
begin
with Printer do
begin
BeginDoc;
ScaleX :=GetDeviceCaps(Handle,LogPixelsX) div PixelsPerInch;
ScaleY :=GetDeviceCaps(Handle,LogPixelsY) div PixelsPerInch;
R :=Rect(0,0,bmp.Width*ScaleX,bmp.Height*ScaleY);
Canvas.StretchDraw(R,bmp);
EndDoc;
end;
end;
end;
 
对了,怎样将PaintBox里绘制的部分保存在一幅位图????
 
后退
顶部