<窗体特效〉半透明窗体 像Foxmail3.1beta的一样

    技术2022-05-11  166

    在windows2000下增加了一些API,可以轻易的实现半透明的窗体,源程序如下,必要的地方我加上了注释 unit Unit1; interface uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs; 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 //新增加的常量定义 type   TForm1 = class(TForm)     procedure FormCreate(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external user32;//函数声明 var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); var l:longint; begin     l:=getWindowLong(Handle, GWL_EXSTYLE);     l := l Or WS_EX_LAYERED;     SetWindowLong (handle, GWL_EXSTYLE, l);     SetLayeredWindowAttributes (handle, 0, 180, LWA_ALPHA); //第二个参数是指定透明颜色 //第二个参数为0则使用第四个参数设置alpha值,从0到255,其他的我不太清楚,因为没有api帮助 end; end.

    最新回复(0)