Delphi7.0中如何制作半透明、透明窗体?(100分)

  • 主题发起人 主题发起人 jiexianjin
  • 开始时间 开始时间
J

jiexianjin

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi7.0中如何制作半透明、透明窗体?
哪位大侠能够给与解答,小弟感激不尽!!
 
在窗体上有两个属性。
AlphaBlend := true;
AlphaBlendValue := 200; //值越小,窗体透明度越高。
 
只要设置几个属性就搞定了,
AlphaBlend 是否透明
AlphaBlendValue 透明值 0-255
不过只再Win2000以上操作系统有效。
2。完全透明(相当于挖调一部分)
TransparentColor 是否透明
TransparentColorValue 透明得颜色值
 
不行的,这样连窗体上的控件也会透明的
 
http://www.delphifans.com/video_view.asp?id=6
视频名称:制作透明窗体
视频类型: 汉语 主演:无
推荐星级:
观看人气:228
所需货币:0 金币
更新时间:2004年1月9日 14时26分

赋源码带视频讲解,去哪找这么好的老师去?? :)
 
哪窗体上的控件怎么也变透明的了呢?有没有办法改正呢?
 
应该可以,你可以通过控制透明颜色,将Form的颜色设置成控制的透明色,但是窗体不能半透明。
这个方法,还可以用于制作异形窗体。
我曾经做过透明窗体上放动画(Splash窗),就象桌面上有个东东在动,效果挺好。

Color := clNavy; {不与控件颜色相同,窗体上所有颜色为此的部分都透明}
TransparentColorValue := Color;
TransparentColor := true;
BorderStyle := bsNone;{不要窗体边框}
 
下面的设置让窗体和控件一起透明:
AlphaBlend 是否透明
AlphaBlendValue 透明值 0-255

下面只让窗体完全透明:
AlphaBlend false
color clBlack < ----
TransparentColor true ||||| 这两个颜色设成一样的
TransparentColorValue clBlack <------
 
上面说的对呀,没解决吗
 
setlayeredwindowattributes api函数介绍如下: 函数功能:设置窗口透明颜色 参数:setlayeredwindowattributes( hwnd hwnd, //窗口手柄 colorref crkey, //指定颜色值 byte balpha, //混合函数值 dword dwflags //动作 参数解释: hwnd:窗口句柄。当使用createwindowex函数创建窗口时,窗口由ws_ex_layered指定的值创建;或者窗口已经创建后,由setwindowlong根据ws_ex_layered指定的值改变。 crkey:指向一个color值,该值指定一个透明颜色值,当创建窗口时,窗口将使用该值。 balpha:混合函数值。该值用于描述窗口的不透明度。当balpha 值为0时,窗口完全透明,当balpha值为255时,窗口完全不透明。 dwflags:指定动作。这个参数可以取一个或多个值。用它我们可以创建一个不规则的窗体。

setlayeredwindowattributes函数的api声明: setlayeredwindowattributes(hwnd: hwnd; crkey: dword;balpha: byte; dwflag: dword): boolean; stdcall;
 
在窗体上有两个属性。
AlphaBlend := true;
AlphaBlendValue := 200; //值越小,窗体透明度越高。

只有在2000以后的版本中支持
 

Similar threads

I
回复
0
查看
794
import
I
I
回复
0
查看
641
import
I
I
回复
0
查看
645
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部