无边框透明窗口设置鼠标穿透与不穿透功能

145 篇文章 664 订阅 ¥9.90 ¥99.00
本文介绍了如何设置无边框透明窗口,使其具备鼠标穿透和不穿透的功能。在设置中,鼠标穿透属性需置于首位,通过绘制透明层颜色来实现效果。当省略特定步骤或不设置鼠标穿透时,鼠标默认可以穿透透明窗口。
摘要由CSDN通过智能技术生成

一、设置鼠标穿透功能:

1、先设置鼠标穿透、无边框、透明,其中鼠标穿透属性要放在第一个位置设置:

this->setAttribute(Qt::WA_TransparentForMouseEvents, true);
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);

2、绘制一下透明层的颜色:

void DrawingBoard::paintEvent(QPaintEvent *)
{
    //设置窗体透明层颜色
    QPainter painter(this);
    painter.fillRect(rect(), QColor(0, 0, 0, 1));
}

这样设置完后,鼠标是可以穿透透明层的。

另外如果是单纯的透明、无边框窗口,不设置鼠标穿透属性,鼠标也是可以穿透的,如下面代码:

this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);

二、同上面类似设置鼠标不能穿

MFC透明窗口穿透是指在使用Microsoft Foundation Classes(MFC)进行窗口界面设计时,实现窗口透明效果和穿透效果。 透明窗口是指窗口的背景部分可以显示出后面的内容。MFC提供了一些API和功能来实现窗口透明效果。可以通过设置窗口的样式和扩展样式来启用窗口透明效果。可以调用SetLayeredWindowAttributes函数来设置窗口透明度,通过设置透明度值来控制窗口的显示效果。使用这些功能和方法,可以实现不同程度的透明窗口效果。 穿透是指窗口透明或半透明状态下,鼠标点击事件不会被该窗口拦截,而是会传递给后面的窗口。MFC提供了一些功能和方法来实现窗口穿透效果。可以通过设置窗口的样式和扩展样式来启用窗口穿透效果。通过设置窗口透明度和穿透属性,可以使鼠标点击事件透过窗口传递给后面的窗口,实现穿透效果。 需要注意的是,实现透明窗口穿透效果会涉及到系统级的API和函数调用,需要对MFC框架和Windows操作系统有一定的了解和掌握。同时,由于Windows操作系统的版本和系统设置的差异,透明窗口穿透效果在不同环境下的表现可能会有所不同。 总之,MFC透明窗口穿透是一种在Windows系统中实现窗口透明穿透效果的方法,可以通过使用MFC提供的API和函数来控制窗口透明度和穿透属性,以实现不同程度的透明窗口效果和让鼠标点击事件透过窗口传递给后面的窗口穿透效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小米的修行之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值