易语言如何用API实现窗口透明

2025-09-28 07:46:54

1、相关API函数:

GetWindowLong:获得有关指定窗口的信息;

SetWindowLong:改变指定窗口的属性;

SetLayeredWindowAttributes:设置分层窗口透明度。

2、DLL命令表:

1.

.版本 2

.DLL命令 GetWindowLong, 整数型, "user32.dll", "GetWindowLongA"

    .参数 hwnd, 整数型

    .参数 nlndex, 整数型

2.

.版本 2

.DLL命令 SetWindowLong, 整数型, , "SetWindowLongA"

    .参数 hwnd, 整数型

    .参数 nIndex, 整数型

    .参数 dwNewLong, 整数型

3.

.版本 2

.DLL命令 SetLayeredWindowAttributes, 逻辑型, , "SetLayeredWindowAttributes"

    .参数 hwnd, 整数型

    .参数 crKey, 整数型

    .参数 bAlpha, 字节型

    .参数 dwFlags, 整数型

3、SetLayeredWindowAttributes参数简介:

hwnd:窗口句柄;

crKey:需要透明的颜色值;

bAlpha:透明度,取值范围0~255,0表示完全透明,255表示完全不透明;

dwFlags:透明方式。

其中,参数dwFlags可取以下值:

LWA_ALPHA:参数crKey(颜色值)无效,参数bAlpha(透明度)有效;

LWA_COLORKEY:窗体中所有颜色为crKey的地方完全透明,参数bAlpha(透明度)无效;

LWA_ALPHA|LWA_COLORKEY:窗体中所有颜色为crKey的地方完全透明,其他地方根据参数bAlpha确定透明度。

易语言十进制中,#LWA_ALPHA=2,#LWA_COLORKEY=1,位或 (#LWA_ALPHA, #LWA_COLORKEY)=3

4、透明方式一:窗口底色完全透明,控件完全不透明。源码如下。

.版本 2

.子程序 __启动窗口_创建完毕

.局部变量 rtn, 整数型

rtn = GetWindowLong (取窗口句柄 (), -20)

SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))

SetLayeredWindowAttributes (取窗口句柄 (), 底色, 0, 1)

效果如下:上图为正常窗口,下面为透明窗口。

注:窗口底色不能使用默认底色。

易语言如何用API实现窗口透明

易语言如何用API实现窗口透明

5、透明方式二:窗口半透明。源码如下。

.版本 2

.子程序 __启动窗口_创建完毕

.局部变量 rtn, 整数型

rtn = GetWindowLong (取窗口句柄 (), -20)

SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))

SetLayeredWindowAttributes (取窗口句柄 (), 底色, 120, 2)

效果如下:上图为正常窗口,下图为透明窗口。

注:窗口底色不能使用默认底色。

易语言如何用API实现窗口透明

易语言如何用API实现窗口透明

6、透明方式三:窗口底色完全透明,控件半透明。源码如下。

.版本 2

.子程序 __启动窗口_创建完毕

.局部变量 rtn, 整数型

rtn = GetWindowLong (取窗口句柄 (), -20)

SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))

SetLayeredWindowAttributes (取窗口句柄 (), 底色, 120, 3)

效果如下:上图为正常窗口,下图为透明窗口。

注:窗口底色不能使用默认底色。

易语言如何用API实现窗口透明

易语言如何用API实现窗口透明

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢