PowerBuilder 窗口透明SetLayeredWindowAttributes详解

 1、引用dll动态库

//hwnd是透明窗体的句柄 crKey为颜色值, bAlpha是透明度,取值范围是[0,255], dwFlags是透明方式,可以取三个值: 
Function ulong SetLayeredWindowAttributes(ulong hwnd,ulong crKey,ulong bAlpha , ulong dwFlags) LIBRARY  "user32.dll"
Function ULong SetWindowLongA(Long hwnd, Long nIndex, Long dwNewLong) Library 'user32.dll'

2、透明代码如下

SetWindowLongA(handle(this),-20,786688)
//第一种全部透明包含控件
SetLayeredWindowAttributes(handle(this),0,200,2)

//第二种根据rgb颜色来设置透明
SetLayeredWindowAttributes(handle(this),rgb(255,0,0),200,1)

//第三种,第一种和第二种结合
SetLayeredWindowAttributes(handle(this),rgb(255,0,0),200,3)

参数详解:

参数 1、hwnd是透明窗体的句柄

参数 2、crKey为颜色值(RGB颜色)

参数 3、bAlpha是透明度,取值范围是[0,255]

参数 4、dwFlags是透明方式,可以取三个值:1,2,3

注意:

1、dwFlags参数为【1】的时候,crKey参数【无效】,窗口【全部透明】包含控件

2、dwFlags参数为【2】的时候,crKey参数【有效】,bAlpha参数【无效】,窗口根据【crKey】颜色参数来透明

      比如我窗口颜色是红色rgb(255,0,0),crKey参数设置成rgb(255,0,0),crKey参数和窗口颜色一致,窗口就会透明,但控件不透明。(第2种方式对窗口控件也有效)

3、dwFlags参数为【3】的时候,上面2种结合,crKey【有效】,bAlpha【有效】,和crKey参数颜色一致的控件,透明度不根据bAlpha参数来,反之可用bAlpha参数设置透明度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值