Canvas 为什么在有些对象里能画图为什么有些不能呢?比如tbitmap对象(200分)

  • 主题发起人 主题发起人 红色闪电
  • 开始时间 开始时间

红色闪电

Unregistered / Unconfirmed
GUEST, unregistred user!
Canvas 为什么在有些对象里能画图为什么有些不能呢?比如tbitmap对象
在IMAGE FORM1里都可以 用StretchDraw() 而在BITMAP的对象变量里就画不出图象来
 
可以画出来的,只是你看不到,如果你放一个 image 控件,
用 image.picture.bitmap.assign(你画的那个bitmap对象),就可以看到了。
 
对!
它们的用法都是一样的,不过有时候可能还要刷新一下。
 
我就想用BITMAP的变量不想用别的 我需要刷新么?
 
TBitmap就好象在内存里的一块图像缓冲,你当然可以在上面乱画,但是你看不到,因为
它在内存里。你可以用一个看得到的Form1.Canvas.Draw(0,0,YourBufBMP)来将内存中的
图象画出来,一点问题都不会有。其实在内存中生成一个BMP是一些高速图象显示的一个
基本技术,可以不会让画面闪烁。
TImage内置了让Bitmap画到前景的机制,所以你能所画所见。
 
画完了吧bitmap bitblt到屏幕上就可以看到啦
Bitblt(bitmap.canvas.handle,0,0,width,height,GetDC(0),0,0,SRCCOPY)
 
都不对!!!是因为没有Canvas大小 宽高
 
可以设置bitmap宽高
 
?我怎么觉得吕雪松说的没错啊
 
var
bitmap:tbitmap;
begin
bitmap:=tbitmap.create;
bitmap.loadfromfile('c:/lg.bmp');
bitblt(canvas.handle,10,10,58,58,bitmap.canvas.handle,0,0,SRCCOPY);
bitmap.free;
end;
 
接受答案了.
 
后退
顶部