//声明: SetLayeredWindowAttributes(Hwnd: THandle; {窗口句柄}crKey: COLORREF; {透明色}bAlpha: Byte; {Alpha 值}dwFlags: DWORD {LWA_COLORKEY(=1)表示使用透明色; LWA_ALPHA(=2)表示使用 Alpha 值} ): Boolean; {是否成功设置}//举例(控制外部程序的透明度, 用计算器举了个例子): unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}{设定计算器的 Alpha 透明} procedure TForm1.Button1Click(Sender: TObject); varh: HWND;FormStyle: Integer; beginh := FindWindow('SciCalc', nil);FormStyle := GetWindowLong(h, GWL_EXSTYLE);SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);SetLayeredWindowAttributes(h, 0, 128, LWA_ALPHA); end;{设定计算器中的白色透明} procedure TForm1.Button2Click(Sender: TObject); varh: HWND;FormStyle: Integer; beginh := FindWindow('SciCalc', nil);FormStyle := GetWindowLong(h, GWL_EXSTYLE);SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);SetLayeredWindowAttributes(h, clWhite, 255, LWA_COLORKEY); end;end.
这是来宾 Dolby 在 http://www.cnblogs.com/del/archive/2008/03/08/1081295.html#1096814 询问的问题.
转载于:https://www.cnblogs.com/del/archive/2008/03/08/1096874.html