unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
Const
WS_EX_LAYERED = $00080000;
LMA_COLORKEY = $00000001;
LMA_ALPHA = $00000002;
var
Form1: TForm1;
Step: integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
ExtStyle : LongInt;
begin
Step:=255;
ExtStyle := GetWindowLong(Handle, GWL_EXSTYLE);
SetWindowLong(Handle, GWL_EXSTYLE, ExtStyle or WS_EX_LAYERED);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Step>0 then
begin
Step:=Step-10;
SetLayeredWindowAttributes(Handle, RGB(0,0,0), Step, LMA_ALPHA or LMA_COLORKEY);
end else
begin
SetLayeredWindowAttributes(Handle, RGB(0,0,0), 255, 1);
Timer1.Enabled:=False;
end;
end;
end.
实现窗口从实变透明到消失这是一个例子
最新推荐文章于 2026-06-20 22:29:48 发布
此博客展示了一段Windows窗体编程代码,利用定时器控制窗体透明度。代码中定义了窗体类,在窗体创建时设置扩展样式,定时器触发时逐步改变透明度,当透明度减到0后恢复初始值并停止定时器。
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印
开发板推荐:天空星STM32F407VET6开发板
超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

2万+

被折叠的 条评论
为什么被折叠?



