2
我已经做了一个小的EXE透明窗体,它有一个TImage。为了使我的形式透明,我用这个代码:如何在delphi中使TImage透明?
Function TForm1.CombineRegions (FrmX , FrmY :Integer;CtrlComp : TControl;Var RegHandle : THandle) : Boolean;
Var
CtrlHandle : THandle;
CtrlLeft,
CtrlTop,
CtrlWidth,
CtrlHt : Integer;
begin
Result := False;
CtrlHandle := 0;
FrmX := 0;
FrmY := 0;
Try
CtrlLeft := CtrlComp.Left;
CtrlTop := CtrlComp.Top;
CtrlWidth := CtrlComp.Width;
CtrlHt := CtrlComp.Height;
Except
Exit;
End;
Try
FrmX:=0;
FrmY:=0;
FrmX := FrmX + CtrlLeft;
FrmY := FrmY + CtrlTop;
CtrlHandle := CreateRectRgn(FrmX, FrmY, FrmX + CtrlWidth, FrmY + CtrlHt) ;
CombineRgn(RegHandle, RegHandle, CtrlHandle, RGN_OR) ;
Except
End;
End;
它做什么首先使所有形式的消失,然后按照我想的表单控件,我会打电话给上面的函数,只有该地区将被画下来 。现在我的TImage有一个背景颜色的图像。
正如你所看到的,图像有一些背景。我希望我的TImage能够被绘制出来,以便只绘制里面的位图,而不是整个区域。可以做到吗? 在此先感谢。
所以你想要一个透明的窗体,只有图片可见,对不对? – TLama 2012-08-03 13:04:42
啊是的,这或多或少是我想要的 – CyprUS 2012-08-03 13:06:40
当图片只是从文件加载并显示在透明表单上时,您是否需要一个'TImage'或对于您来说就足够了? – TLama 2012-08-03 13:18:35