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

2025-05-02 17:10:45

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参数简介: hwn蟠校盯昂d:窗口句柄; 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。
猜你喜欢