那个叫做stretchdraw的东东到底有什么用?怎么用?多谢大虾指点!! (0分)

  • 主题发起人 主题发起人 ccnujzw
  • 开始时间 开始时间
C

ccnujzw

Unregistered / Unconfirmed
GUEST, unregistred user!
那个叫做stretchdraw的东东到底有什么用?怎么用?多谢大虾指点!!最好有例子哦!
在程序中用canvas.stretchdraw老出问题,到底怎么用?
将缓存image1上的图片考到新建位图newbmp上的过程中,(是bmp图片花样显示的问题),
copyrect实际上考的是原图像的大小,而不是在缓存中变化大小后的图像(设stretch为真)
,所以填不满newbmp,怎么办哦!
问题够长,谁看懂了我的问题,就可以称得上大虾了!
 
delphi 中canvas画图时能否屏蔽某一区域以外的部分,既我只想操作在某一区域上有显示效果,但我又不想重新编写函数可以吗?
 
canvas.stretchdraw就是可以把image1上的图片进行缩放并考到newbmp里面的
一个函数。
如:
image1中有一个100x100图片,newbmp为300x400的位图,要将image1的图形充
满newbmp,则代码如下:
newbmp.Canvas.stretchdraw(Rect(0,0,300,400),image1.Picture.Graphic);
如果只需要画到一个小区内,不要充满,则:
newbmp.Canvas.stretchdraw(Rect(50,50,200,200),image1.Picture.Graphic);

>>canvas画图时能否屏蔽某一区域以外的部分
看看CANVAS的CLIPRECT的帮助,或许有用:
procedure Form1.Button1Click(Sender: TObject);
var
MyRgn: HRGN ;
begin
MyRgn := CreateRectRgn(100,100,200,200);
SelectClipRgn(Image1.Canvas.Handle,MyRgn);
Image1.Canvas.Brush.Color := clRed;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Image1.Invalidate;
SelectClipRgn(Image1.Canvas.Handle,nil);
DeleteObject(MyRgn);
end;

另:你怎么没分了?真亏。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部