透明一个窗体:根据一个颜色范围进行透明。

解决方案 »

  1.   

    将窗体的transparent属性设置成true
      

  2.   

    用API函数吧,
    SetWindowLong(Self.Handle,GWL_EXSTYLE,GWL_WNDPROC);
    这样就可以使窗体透明了。
      

  3.   

    Delphi6以上的话可以
    窗体的AlphaBlend设为True
    AlphaBlendValue设为你想要的值!
      

  4.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormActivate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end; const
      WS_EX_LAYERED = $80000;
      AC_SRC_OVER = $0;
      AC_SRC_ALPHA = $1;
      AC_SRC_NO_PREMULT_ALPHA = $1;
      AC_SRC_NO_ALPHA = $2;
      AC_DST_NO_PREMULT_ALPHA = $10;
      AC_DST_NO_ALPHA = $20;
      LWA_COLORKEY = $1;
      LWA_ALPHA = $2;
      ULW_COLORKEY = $1;
      ULW_ALPHA = $2  ;
      ULW_OPAQUE = $4 ;
      
    var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormActivate(Sender: TObject);
    var
      l:longint;
      wndHandle : THandle;
      wndClass : array[0..50] of Char;
    begin
      l:=getWindowLong(Handle, GWL_EXSTYLE);
      l := l Or WS_EX_LAYERED;
      SetWindowLong (handle, GWL_EXSTYLE, l);
      SetLayeredWindowAttributes (handle, 600, XXX, LWA_ALPHA);   //前面的XXX为透明度,范围=[1..255]
    end;end.
      

  5.   

    SetLayeredWindowAttributes()函数是Windows 2000新增的一个API函数,它所在的模块为USER32.DLL
    嘿嘿,也就是WIN2K以上的系统才可以用以上的方法