unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
btn_1: TButton;
procedure btn_1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure DrawBufImage(bufCanvas:TCanvas );
end;var
Form1: TForm1;
oldbmp,Bufbmp:TBitmap ;
implementation{$R *.dfm}procedure TForm1.DrawBufImage(bufCanvas: TCanvas);
begin
bufCanvas.Pen.Color :=clBlack ;
bufCanvas.MoveTo(0,0);
bufCanvas.LineTo(100,100);
end;procedure TForm1.btn_1Click(Sender: TObject);
begin
Bufbmp:=TBitmap.Create ;
DrawBufImage(Bufbmp.Canvas );
bitblt(self.Canvas.Handle, 0, 0, 400, 400,
BufBmp.Canvas.Handle, 0, 0, SRCCOPY);
Bufbmp.Free ;
end;end.没反应,是哪里错了呢
procedure TForm1.btn_1Click(Sender: TObject);
var
img: TImage;
begin
img := TImage.Create(Self);
try
img.Parent := Self;
img.Top := 200;
img.Left := 200;
img.width := 200;
img.height := 200;
img.Canvas.Pen.Color :=clBlack ;
img.Canvas.MoveTo(0,0);
img.Canvas.LineTo(100,100);
Application.ProcessMessages; bitblt(self.Canvas.Handle, 0, 0, 200, 200,
img.Canvas.Handle, 0, 0, SRCCOPY);
finally
img.Free;
end;
end;
谢谢楼上的,但是画出来的时候,Image里面是白色的,我不想要这个白色,该怎么弄呢?
SRCCOPY改成SRCAND
bitblt(self.Canvas.Handle, 0, 0, 200, 200,
img.Canvas.Handle, 0, 0, SRCCOPY);
----------------------------------------------------
bitblt(self.Canvas.Handle, 0, 0, 200, 200,
img.Canvas.Handle, 0, 0, SRCAND);