Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1267294
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-11-05 09:42:18



如何将一个BMP图片画在TPanel的中间(也就是让图片居中)用这个API(DrawDibDraw)画图片?谢谢!

var  
      vDrawDIB:   THandle;  
      vBitmapInfoHeader:   TBitmapInfoHeader;  
      vBits:   PChar;  
      vBitmap:   TBitmap;  
      vImageSize:   Longword;  
      vInfoHeaderSize:   Longword;  
  begin  
      vBitmap   :=   Image1.Picture.Bitmap;  
      GetDIBSizes(vBitmap.Handle,   vInfoHeaderSize,   vImageSize);  
      vDrawDIB   :=   DrawDibOpen;  
      GetMem(vBits,   vImageSize);  
      with   TControlCanvas.Create   do   try  
          GetDIB(vBitmap.Handle,   vBitmap.Palette,   vBitmapInfoHeader,   vBits^);  
   
          Control   :=   Panel1;  
          DrawDibDraw(vDrawDIB,   Handle,  
              (Panel1.Width   -   vBitmap.Width)   div   2,  
              (Panel1.Height   -   vBitmap.Height)   div   2,  
              vBitmap.Width,   vBitmap.Height,  
              @vBitmapInfoHeader,  
              vBits,   0,   0,   vBitmap.Width,   vBitmap.Height,   DDF_HALFTONE   or   DDF_JUSTDRAWIT)  
      finally  
          Free;  
          FreeMem(vBits,   vImageSize);  
          DrawDibClose(vDrawDIB);  
      end;  
  end;  
 

谢谢



[新闻]雅虎将于12月3日关视频直播闭网站Yahoo Live
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(478) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~