易语言通过API实现窗口透明效果
易语言是一种简单易学的编程语言,可以通过调用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)
```
效果如下:
上图为正常窗口,下图为透明窗口。需要注意的是,窗口底色不能使用默认底色。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。