|
你见过这样屏幕保护程序的效果吗?屏幕中央出现一个圆形区域,区域中是一幅图,随着圆形区域的逐渐扩大,这幅图便画满了整个屏幕,另一种效果相反,是以圆形逐渐缩小的方式来显现的,Windows的Blt函数都是基于矩形拷贝的,没有其它多边形的拷贝,所以实现这一效果肯定是用剪裁区域一类的方法来做的。 wX4Linux联盟 wX4Linux联盟 varwX4Linux联盟 Bmp :TBitmap;wX4Linux联盟 FRgn :HRGN;wX4Linux联盟 beginwX4Linux联盟 Bmp :=TBitmap.Create;wX4Linux联盟 Bmp.PixelFormat :=Image1.Picture.Bitmap.PixelFormat;wX4Linux联盟 Bmp.Width :=100;wX4Linux联盟 Bmp.Height :=100;wX4Linux联盟 BitBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,Image1.Canvas.Handle,80,wX4Linux联盟 80,SRCCOPY); //要拷贝的位图wX4Linux联盟 FRgn :=CreateEllipticRgn(0,0,100,100); //创建圆形区域wX4Linux联盟 SelectClipRgn(Image1.Canvas.Handle,FRgn); //选择剪切区域wX4Linux联盟 Image1.Canvas.Draw(0,0,Bmp); //位图位于区域内的部分加载wX4Linux联盟 Bmp.Free;wX4Linux联盟 DeleteObject(FRgn);wX4Linux联盟 end;wX4Linux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|