透明一个窗体:根据一个颜色范围进行透明。
解决方案 »
- DbGrid显示不出查询记录
- (高分求教)fastreport detail中竖向线条如何随子报表的高度而伸展
- 这么简单的代码,放在DLL里面就不行了;
- 如何在W9x和W2k下读写24Cxx的EEPROM?(并口)
- 触发器问题?
- 各位放分了!告诉我网上关于Delphi的免费书的的奖呀,急需!!!
- 关于DCOM 连接问题?(在线等)
- 如何读取INI文件?
- 紧急求助
- 我知道 INHERITED 是在父类的基础方法上添加新的代码行,但是如何让 父类的 方法在子类起一点作用呢?
- 我用easychm帮助文件制作工具生成一个chm帮助文件,可在标题上有些软件开发者的信息,有什么办法可以让chm文件上标题改掉吗?
- 访问注册表失败,请高手赐教(附代码)在线等
SetWindowLong(Self.Handle,GWL_EXSTYLE,GWL_WNDPROC);
这样就可以使窗体透明了。
窗体的AlphaBlend设为True
AlphaBlendValue设为你想要的值!
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.
嘿嘿,也就是WIN2K以上的系统才可以用以上的方法