aardio设置透明窗体说明

废话不多说,直接开干!
窗体透明一般事plus
import win.ui;
/*DSG{{*/
var winform = win.form(text="透明题栏";right=286;bottom=176;border="none")
winform.add(
button={cls="button";text="提交";left=176;top=87;right=231;bottom=108;z=3};
edit={cls="edit";text="Edit";left=86;top=55;right=234;bottom=76;edge=1;z=2};
static={cls="static";text="用记名";left=37;top=56;right=109;bottom=77;transparent=1;z=1}
)
/*}}*/

//给窗体设置背景
import inet.http;//加上http
winform.image = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fhbimg.huabanimg.com%2F1c6b595acfd6652b9a080110a0f7b6fc5a94ee33513d-qdBaTS_fw658&refer=http%3A%2F%2Fhbimg.huabanimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1654231490&t=169f387371bd97076777e269d07668fc";

//显示窗体
winform.show()
win.loopMessage();

窗体透明化之后,里面的控件脱离原来的窗口显示在窗体外面之后怎么还原回去?

我建立了一个窗口,里面与一个背景色为蓝色的plus. 我设置了窗口透明度是80,然后里面的控件plus也透明化了.

用到代码

winform.plus.orphanWindow();

plus的父窗体为winform.

win.setParent(winform.plus.hwnd,winform.hwnd);

plus控件确实再一次透明化了,但是发现它的位置不是在原来的地方.
再设置plus相对winform位置…

var x,y = winform.plus.getPos();
var bx,by = win.toClient(winform.hwnd,x,y)

win.setParent(winform.plus.hwnd,winform.hwnd);
winform.plus.setPos(bx,by);

运行后,确实透明化在原来的地方.
按钮事件,可在图形编辑视图下,双击按钮快速自动生成
但,问题又来了. 拖动窗口发现,这个plus不是随着窗体移动相对窗口静止,而是随着移动窗口移动的更大幅度
看下完整代码

import win.ui;
//设置窗体透明度
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="button";left=86;top=372;right=253;bottom=429;z=3};
button2={cls="button";text="button2";left=462;top=356;right=613;bottom=427;z=4};
//设置透明度
edit={cls="edit";text="白叔King";left=93;top=90;right=328;bottom=125;edge=1;font=LOGFONT(h=-21);multiline=1;z=1};
plus={cls="plus";left=105;top=172;right=567;bottom=240;bgcolor=15780518;z=2}
)
/*}}*/

import console;
console.open();

winform.button2.oncommand = function(id,event){
        //winform.msgbox( winform.button2.text );
/*
        console.dump(
                win.getPos(winform.plus.hwnd,true)
        )
        console.dump(
                winform.plus.getPos()
        )
*/
        var x,y = winform.plus.getPos();
        var bx,by = win.toClient(winform.hwnd,x,y)

        win.setParent(winform.plus.hwnd,winform.hwnd);
        winform.plus.setPos(bx,by);
        
}


winform.button.oncommand = function(id,event){
        //winform.msgbox( winform.button.text );
        
        winform.edit.orphanWindow();
        winform.plus.orphanWindow();
}


winform.transparent(80);

winform.show() 
win.loopMessage();

看下效果截图
初次运行安装对应库
在这里插入图片描述

给电脑添加透明护眼蒙版(鼠标穿透) 以上代码参考了, win.ui.mask库里的代码

其实还是可以直接用这个库来实现,上面就是为了学习

要想改变蒙版的颜色, 就把窗口背景色改一改就可以了

看代码

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=205;bottom=447;bgcolor=8409088;border="none")
winform.add(
plus={cls="plus";text="半透明写标题";left=0;top=0;right=206;bottom=31;align="left";color=16777215;dl=1;dr=1;dt=1;font=LOGFONT(h=-16);notify=1;textPadding={left=8};z=1}
)
/*}}*/
 
winform.plus.background = 0x33000812;
winform.transparent(60)
winform.plus.orphanWindow(true)
winform.plus.onMouseDown = function(wParam,lParam){
    winform.hitCaption()
     
}
 
import win.ui.shadow
win.ui.shadow(winform);
 
winform.show() 
win.loopMessage();

可以设置尺寸,透明度
看下效果
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值