F
fxb
Unregistered / Unconfirmed
GUEST, unregistred user!
方法一:这是以前搜索到的,可是我怎么打印出来什么也没有呢?
procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
DC := GetDC(0);
Canvas.Handle := DC;
printer.begin
doc;//准备打印
//下面是把 panel 在屏幕上的图象拷贝下来
printer.Canvas.CopyRect(rect(0,0,panel1.Width,panel1.Height),
canvas,
rect(self.Left+panel1.Left,
self.Top+panel1.Top,
self.Left+panel1.Left+panel1.Width,
self.Top+panel1.Top+panel1.Height));
ReleaseDC(0, DC);
canvas.Free;
printer.enddoc;//开始打印
end;
CopyRect 方法
第一个参数是目的矩形的大小
第二个参数源的canvas,这里也就是屏幕的
第三个参数是源的矩形,可能有差距,你修改一下
方法二:panel1.paintto()方法,可以打印但如何改变打印比例?
procedure TForm1.Button1Click(Sender: TObject);
var
DC: HDC;
Canvas: TCanvas;
begin
Canvas := TCanvas.Create;
DC := GetDC(0);
Canvas.Handle := DC;
printer.begin
doc;//准备打印
//下面是把 panel 在屏幕上的图象拷贝下来
printer.Canvas.CopyRect(rect(0,0,panel1.Width,panel1.Height),
canvas,
rect(self.Left+panel1.Left,
self.Top+panel1.Top,
self.Left+panel1.Left+panel1.Width,
self.Top+panel1.Top+panel1.Height));
ReleaseDC(0, DC);
canvas.Free;
printer.enddoc;//开始打印
end;
CopyRect 方法
第一个参数是目的矩形的大小
第二个参数源的canvas,这里也就是屏幕的
第三个参数是源的矩形,可能有差距,你修改一下
方法二:panel1.paintto()方法,可以打印但如何改变打印比例?