如何使易语言制作的窗口背景透明 10

 我来答
若以下回答无法解决问题,邀请你更新回答
山水阿锐
2015-06-09 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
相关API函数:
GetWindowLong:获得有关指定窗口的信息;
SetWindowLong:改变指定窗口的属性;
SetLayeredWindowAttributes:设置分层窗口透明度。
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, 整数型
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
透明方式一:窗口底色完全透明,控件完全不透明。源码如下。
.版本 2
.子程序 __启动窗口_创建完毕
.局部变量 rtn, 整数型
rtn = GetWindowLong (取窗口句柄 (), -20)
SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))
SetLayeredWindowAttributes (取窗口句柄 (), 底色, 0, 1)
效果如下:上图为正常窗口,下面为透明窗口。
注:窗口底色不能使用默认底色。

透明方式二:窗口半透明。源码如下。
.版本 2
.子程序 __启动窗口_创建完毕
.局部变量 rtn, 整数型
rtn = GetWindowLong (取窗口句柄 (), -20)
SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))
SetLayeredWindowAttributes (取窗口句柄 (), 底色, 120, 2)
效果如下:上图为正常窗口,下图为透明窗口。
注:窗口底色不能使用默认底色。

透明方式三:窗口底色完全透明,控件半透明。源码如下。
.版本 2
.子程序 __启动窗口_创建完毕
.局部变量 rtn, 整数型
rtn = GetWindowLong (取窗口句柄 (), -20)
SetWindowLong (取窗口句柄 (), -20, 位或 (rtn, 524288))
SetLayeredWindowAttributes (取窗口句柄 (), 底色, 120, 3)
效果如下:上图为正常窗口,下图为透明窗口。
注:窗口底色不能使用默认底色。
追问
直接复制么,我新手
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式