<窗体特效〉半透明窗体 像Foxmail3.1beta的一样
来源:互联网 发布:ubuntu 14.04搭建lnmp 编辑:程序博客网 时间:2024/05/10 12:26
在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.
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.
作者Blog:http://blog.csdn.net/soj/
忘了一句
如果你想让你的程序调试成功,最好是把
function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external user32;//函数声明
移到{$R *.DFM}之后
上面动态库函数声明出错了。 记住:一定要在win2000下才能正确通过。
忘了一句
如果你想让你的程序调试成功,最好是把
function SetLayeredWindowAttributes(hwnd:HWND; crKey:Longint; bAlpha:byte; dwFlags:longint ):longint; stdcall; external user32;//函数声明
移到{$R *.DFM}之后
上面动态库函数声明出错了。 记住:一定要在win2000下才能正确通过。
- <窗体特效〉半透明窗体 像Foxmail3.1beta的一样
- <窗体特效〉半透明窗体 像Foxmail3.1beta的一样
- 半透明窗体的制作
- 半透明的窗体
- 半透明窗体
- 半透明窗体
- win7上的半透明窗体
- 简单的窗体特效
- C#像QQ一样隐藏窗体
- C# 实现像QQ一样隐藏窗体
- Winform 窗体像普通控件一样嵌入其他窗体
- DIY Delphi 半透明窗体 (1)
- C#绘制半透明窗体,只让窗体背景半透明,而窗体里面的控件不透明
- 使用PNG实现半透明的窗体
- 编程实现窗体的半透明效果
- wheelbarrow.c和半透明窗体相关的
- Windows Mobile下的窗体半透明实现
- Windows Mobile下的窗体半透明实现
- ASP编程入门进阶(廿一):DAO SQL之建立数据库表
- 判斷2個已存在rc是否配置相同容易遺漏的注意點
- 驳—熟人好办事
- DisplayTag中文乱码
- ASP中使用存储过程
- <窗体特效〉半透明窗体 像Foxmail3.1beta的一样
- 吃亏是福
- ASP常用函数收藏
- 论Asp与XML的关系(ZT)
- 在Delphi7中实现停靠功能
- 不要降低自己身份
- iReport 和 Jasperreport整合开发web报表向导(3)
- iReport 和 Jasperreport 整合开发 WEB 报表向导(二)
- ASP应用中的应用函数