2016 - 2024

感恩一路有你

易语言通过API实现窗口透明效果

浏览量:4872 时间:2024-08-15 23:09:46 作者:采采

易语言是一种简单易学的编程语言,可以通过调用API函数来实现各种功能。在实现窗口透明效果方面,易语言提供了一个非常有用的函数SetLayeredWindowAttributes。这个函数可以实现三种不同的窗口透明效果。

相关API函数

在使用SetLayeredWindowAttributes函数之前,我们需要了解一些相关的API函数。其中包括GetWindowLong、SetWindowLong和SetLayeredWindowAttributes。

- GetWindowLong:用于获得指定窗口的信息。

- SetWindowLong:用于改变指定窗口的属性。

- SetLayeredWindowAttributes:用于设置分层窗口的透明度。

SetLayeredWindowAttributes参数说明

SetLayeredWindowAttributes函数有四个参数:

1. hwnd:窗口句柄。

2. crKey:需要透明的颜色值。

3. bAlpha:透明度,取值范围为0~255,其中0表示完全透明,255表示完全不透明。

4. dwFlags:透明方式。

参数dwFlags可以取以下三个值:

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

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

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

透明方式一:窗口底色完全透明,控件完全不透明

下面是实现窗口底色完全透明,控件完全不透明的源代码:

```e

.版本 2

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

局部变量 rtn, 整数型

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

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

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

```

效果如下:

上图为正常窗口,下面为透明窗口。需要注意的是,窗口底色不能使用默认底色。

透明方式二:窗口半透明

下面是实现窗口半透明的源代码:

```e

.版本 2

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

局部变量 rtn, 整数型

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

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

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

```

效果如下:

上图为正常窗口,下图为透明窗口。需要注意的是,窗口底色不能使用默认底色。

透明方式三:窗口底色完全透明,控件半透明

下面是实现窗口底色完全透明,控件半透明的源代码:

```e

.版本 2

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

局部变量 rtn, 整数型

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

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

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

```

效果如下:

上图为正常窗口,下图为透明窗口。需要注意的是,窗口底色不能使用默认底色。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。