读书人

怎么在panel上绘图

发布时间: 2012-02-15 12:09:44 作者: rapoo

如何在panel上绘图?
procedure TForm17.Button1Click(Sender: TObject);
var
aBmp : TBitmap;
aCanvas : TCanvas;
aRect : TRect;
begin
aBmp := TBitmap.Create;
aBmp.LoadFromFile('C:\a.bmp');
aCanvas := TCanvas.Create;
aCanvas.Handle := GetDC(Panel1.Handle);
aRect := Rect(0,0,Panel1.Width,Panel1.Height);
aCanvas.StretchDraw(aRect, aBmp);
//SetStretchBltMode(aCanvas.Handle, STRETCH_HALFTONE);
//StretchBlt(aCanvas.Handle,0,0,Panel1.Width,Panel1.Height,aBmp.Canvas.Handle,0,0,aBmp.Width,aBmp.Height,SRCCOPY);
aBmp.Free;
aCanvas.Free
end;

为什么Panel1上没显示图片

[解决办法]
在每次PAINT消息中画图片,不然肯定会没了的,其实你这样不如用Image控件,全部封装好的,比你自己实现强多了
[解决办法]
不如用Image控件,动态加载进来.
把Image放在panel上
procedure TForm1.FormCreate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('C:\a.bmp');
end;
[解决办法]
画在PANEL上重绘下就没有了吧
用IMAGE代替是不错的选择。
不然你在PANEL重绘时再画

读书人网 >.NET

热点推荐