如何将一个BMP图片画在TPanel的中间(也就是让图片居中)用这个API(DrawDibDraw)画图片?谢谢!
解决方案 »
- DateTimePicker 如何赋值
- delphi 怎么实现 签名处显示个人公章
- 怎么获得一个进程打开的网络连接。
- 请问谁知道DELPHI在完整类树图在哪里找?
- 关于文件流的一点问题!
- GetProcAddress函数问题!!
- 大家觉悟得DELPHI 2005 有发展前途吗?
- dbgrid的ShowPopupEditor()是怎么使用的?请大侠们给一个例子!
- 如何使TrackBar既能反应当前进度又能响应鼠标拖动改变当前进度??
- 可否在触发器中调用存储过程?
- 如何象WORD一样用我编的软件打开我自定义的文件
- TCPCLIENT/TCPSERVER很困惑的问题!!!!!!!!!高手请进!!!!
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;