警惕WS_EX_LAYERED属性的问题

屏幕共享技术原理与安全风险:从Discord投屏到进程隐藏 屏幕共享技术是现代实时通信和远程协作的核心功能,其原理基于操作系统提供的图形捕获API,如Windows的DXGI或macOS的AVFoundation框架。这些API通过获取显示缓冲区或特定窗口的帧数据,经编码后通过网络协议传输。从技术实现角度看,屏幕共享不仅涉及图像采集和编码,还可能触及进程管理、窗口属性和系统安全层面。在工程实践中,开发者需要关注性能优化、兼容性和隐私保护。然而,这项技术也可能被滥用,例如通过操纵窗口属性、进程隐藏甚至视频流伪造等手段,试图在共享内容中隐藏特定信息。这类行为常出现在游戏 阅读详情

WS_EX_LAYERED是微软窗口扩展属性,在API层面实现了窗口透明化的功能,的确为创建酷酷窗口提供了便利

 

然后必须警惕该属性带来的问题.

 

例如最近希望扩展Tooltip窗口的显示效果

 

当在绘画时使用了

SetBkMode( TRANSPARENT )

,希望透明显示文字时就出现了问题,在ToolTip更换了文字后,发现底色整个变黑了

 

 

在EraseBkgnd和PAINT消息上纠缠很久后依然没有解决。

 

最后发现Tooltip的窗口具有扩展属性WS_EX_LAYERED

 

将之去除后,问题消除。

 

所以可见该属性在内部实现上有特殊处理。以后如果各位在界面显示方面出现奇怪问题时,不妨察看下是否窗口具有WS_EX_LAYERED属性,

并确认是否该属性导致了奇怪问题的产生。

里奥老师乾坤大挪移—初尝Windows分层窗口技术 体验一下透明窗口 阅读详情

相关推荐

C++两万字总结Windows系统中的Layered分层窗口技术(附源码)

在开发Windows应用程序时,我们会时常使用Layered分层窗口实现特殊的视觉效果。在Windows系统中,操作Layered分层窗口的API函数分别是SetLayeredWindowAttributes和UpdateLayeredWindow,其中SetLayeredWindowAttributes可以设置窗口的透明度,UpdateLayeredWindow则能实现各种特殊效果的异形窗口。 今天就来详细介绍一下如何使用这两个函数去实现指定效果的Layered分层窗口,以...

dvlinker的技术专栏 1万+

关于WS_EX_LAYERED的思考

带有WS_EX_LAYERED风格的窗口也就是我们说的分层窗口,zhu

阿狸在狂笑 1万+

实现无标题栏窗口的拖拽技术

本文还有配套的精品资源,点击获取 简介:在Windows系统中,传统上通过窗口标题栏拖拽以移动窗口。当标题栏隐藏时,开发者需要采用特定技术让用户能够拖动窗口。这涉及重写窗口过程,捕获特定消息(如WM_NCHITTEST、WM_NCLBUTTONDOWN、WM_NCMOUSEMOVE),并处理窗口样式,如无边框样式的创建(使用WS_EX_LAYERED样式)和透明度设置(使用...

weixin_42613017的博客 1592

分层窗口(Layered windows)

Layered WindowsWindows 2000 introduces a new extended window style bit: WS_EX_LAYERED. When used properly, it can significantly improve performance and visual effects for a window that has a complex shape, animates, or wishes to use alpha-blending effects.

JankyHu的专栏 1万+

制作半透明窗口-WS_EX_LAYERED-SetWindowLong

介绍编写半透明窗口的源代码,API的NO—MFC,JUST DO IT!

VSAN数据救援实战:当26个虚拟机突然不可访问时我们做了什么?

本文深度复盘了一次由运维操作失误引发的VMware vSAN存储危机,导致26个虚拟机数据不可访问的实战救援过程。文章详细剖析了vSAN脑裂状态的诊断方法,分享了在官方支持受限时,如何结合社区智慧与自主分析,通过精准的底层命令干预和状态推理,最终成功恢复全部数据的破局思路与操作细节,为vSAN数据救援提供了宝贵经验。

weixin_35749786的博客 238

C++ 获取 WS_EX_LAYERED 分层窗口图像的两种方案

通过网上的搜索,获取窗口的图像一般可以使用 PrintWindow 指定 PW_CLIENTONLY,不过对于分层窗口,这种方案显然是不行的,这么写会获取图像失败。

alan16356的博客 952

Qualcomm平台下基于QSEE的指纹识别方案移植之四TA移植

本文只介绍TA移植的过程,不做技术分析,关于TA开发另做记录。 一、TA介绍 TA,Trusted application 可信应用,是运行于QSEE中的可执行程序。 指纹TA文件如下,形式一般是 xxx.mbn; xxx.b0 ~ xxx.b6, xxx.flist, xxx.mdt; xxx.mbn 可以理解为其它几个文件的集合,签名的时候用的就是这个文件,签完名之后,有对应的工具将它...

梦路遥 7549

WS_EX_LAYERED 支持透明扩展属性

WS_EX_LAYERED是微软窗口扩展属性,在API层面实现了窗口透明化的功能,的确为创建酷酷窗口提供了便利 然后必须警惕该属性带来的问题. 例如最近希望扩展Tooltip窗口的显示效果 当在绘画时使用了 SetBkMode( TRANSPARENT )

fysy0000的专栏 2880

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 128

别只会‘pip install’了!当Python报错找不到‘pkg_resources’时,你的setuptools可能出大问题

本文深入解析Python开发中常见的`ModuleNotFoundError: No module named 'pkg_resources'`错误,揭示其背后的setuptools依赖问题。通过系统化的诊断与修复指南,帮助开发者理解Python包管理机制,并提供从基础到高级的解决方案,确保pip和setuptools的正常运行。

weixin_42523711的博客 435

Unity透明窗口开发指南:从原理到实战打造桌面悬浮应用

在图形用户界面开发中,窗口管理是基础而重要的技术概念。其原理涉及操作系统对窗口句柄、样式和消息机制的管理,通过调用底层API可以改变窗口的视觉与交互行为。这项技术的核心价值在于突破传统矩形窗口的限制,实现更灵活、沉浸式的界面呈现方式,广泛应用于桌面小部件、性能监控、画中画工具等场景。本文聚焦于Unity引擎中透明窗口的实现,深入解析了渲染管线适配、Windows API调用等关键技术,并针对点击穿透、性能优化等工程实践问题提供了解决方案,帮助开发者高效构建稳定可用的桌面悬浮应用。

weixin_34174422的博客 355

k8s上分离集群seatunnel部署(生产推荐)

k8s上分离集群seatunnel部署(生产推荐)

寂夜了无痕的博客 888

Unity二次元桌宠开发实战:从Live2D模型到桌面交互全流程

桌面宠物作为一种轻量级的数字伴侣,其核心在于将虚拟角色与用户桌面环境无缝融合,提供陪伴感与趣味交互。其实现原理通常涉及图形渲染、动画驱动与系统级窗口管理。从技术价值看,这类项目能有效串联2D/3D图形技术、实时交互逻辑与跨平台集成能力,是学习游戏引擎应用与系统编程的绝佳实践。在应用场景上,二次元风格的桌面宠物尤为流行,常被用于个性化桌面装饰、虚拟主播的互动延伸或作为轻量级的情感化计算界面。本文聚焦于使用Unity引擎结合Live2D模型,详细讲解如何实现一个具备基础交互能力的二次元桌宠,涵盖从模型导入、动画

weixin_33874713的博客 400

利用SIMULINK搭建一个16QAM调制解调收发系统

1发送模块设计 根据前面介绍的理论知识,我们可以知道16QAM的基本结构,首先我来设计QAM发送段的SIMULINK仿真模块。 图1 16QAM的发送端模块 他的基本工作流程为:将信号通过两路升余弦滤波器,得到滤波以后的信号,滤波器的作用就是为了防止码间干扰。然后将滤波以后的信号和SIN,COS相乘得到调制信号,将调制 下面一一介绍每个模块的具体参数设置以及各个部分信号的波形图。 图2 产生随机数据的信号源 第一部分信号是产生一组随机的数字,作为信源,第二个模块将信号...

FPGA/MATLAB学习教程/源码/项目合作开发 4776

当SLAM遇上FPGA:打造一个会“硬件加速”的激光雷达SLAM系统

点云数据的运动畸变校正特征点提取与匹配、以及ICP迭代最近点配准。在传统方案中,我们通常用ARM核完成所有计算。但点云配准中的最近邻搜索(KD-Tree)需要大量分支判断,CPU处理起来效率很低;而ICP中的矩阵分解(SVD)虽然计算量大,但非常适合并行化。ZYNQ的特殊之处在于它把ARM(PS端)和FPGA(PL端)集成在同一颗芯片上。ARM擅长跑操作系统、处理复杂逻辑和调度,FPGA擅长做高吞吐量的并行计算。两者之间通过AXI总线高速互联,数据交换延迟只有几十个时钟周期。

QQ_778132974的博客 375

WPF Ribbon控件深度解析:从安装集成到高DPI工程实践

Ribbon是WPF中实现Office风格导航与命令组织的核心UI范式,其本质是基于VisualStateManager的状态驱动控件体系,通过RibbonWindow、RibbonTab、RibbonGroup等组件构建可伸缩的命令界面。技术价值在于提供开箱即用的系统级主题集成、DWM硬件加速渲染及GAC注册的稳定部署能力,显著降低企业级桌面应用的UI一致性维护成本。典型应用场景包括ERP、医疗HIS、政企OA等需兼顾Windows传统生态与专业交互体验的WPF桌面系统。本文聚焦Microsoft Rib

chuji3953的博客 431

Allegro如何导出和导入器件模型Signal_Model操作指导

在用Allegro做PCB设计的时候,通常需要给器件加上Signal_Model,在做等长的时候用到的非常频繁。如下图,需要把R7002的Signal_Model导入到另外一块没有给R7002加好模型的BRD中。Allegro除了可以给器件添加模型,还支持从一块加好模型的BRD导入到另外一块BRD中,如何导出和导入器件模型Signal_Model操作指导。

weixin_54787054的博客 1896

易语言通过进程ID精准获取窗口句柄的原理与实践

在Windows桌面自动化开发中,进程ID(PID)是操作系统级唯一标识,而窗口句柄(HWND)是UI操作的核心入口;二者间需建立稳定、不依赖窗口标题或类名的确定性映射。其底层原理基于Windows内核提供的GetWindowThreadProcessId API,通过遍历顶级窗口并比对所属进程实现精准绑定。该技术显著提升RPA、UI测试、辅助工具等场景的脚本鲁棒性,避免因动态标题、随机类名或前台状态导致的识别失败。本文聚焦易语言环境下如何安全调用Win32 API完成PID→HWND转换,并解决指针传参、

weixin_34015336的博客 520

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# 窗体样式使用WS_EX_LAYERED后,无法绘制windows控件的解决办法

根据一副 png 图片绘制半透明窗体时,用了 WS_EX_LAYERED 后当前窗体再也不会处理 paint 事件,所以所含的子控件是一辈子也不会画出来的,但是这个控件确实存在,而且可以响应事件 。而此时 windows 画制窗体是使用 UpdateLayeredWindow 这个 api 函数的。        对于按钮,完全可以自己画两个图片然后盖在 button 上面,通过处理 ...

weixin_34357928的博客 261

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

[MFC] WS_EX_LAYERED 实现透明异形窗口(酷狗歌词、360加速球、窗口边缘阴影)

关键词:WS_EX_LAYERED、 UpdateLayeredWindow  PC应用不少都有透明的异形窗口 比如酷狗音乐播放器的歌词窗口、360桌面加速球 如图: 这类窗口的实现 可以采用WS_EX_LAYERED属性(详情请MSDN) 将窗口设置WS_EX_LAYERED和WS_EX_TRANSPARENT属性  并使用函数UpdateLayeredWin

felicityWSH的博客 4144

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

如何在子控件上使用WS_EX_LAYERED

从Window 8开始,WS_EX_LAYERED可用于子控件。 方法:需要清单文件,至少指定Window 8兼容性(子分层仅支持从Window 8开始)。 对于想要使用分层子窗口的任何人,应将以下内容作为清单文件包含在内。 <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> &...

qq_39529180的博客 1246

Window 透明窗体的实现总结

此片文章是以前写的, 刚刚新开了博客, 就发出来跟大家分享下。 这篇文章主要讲得是vc中各种分层、透明、不规则窗口的实现, 基本囊括GDI、GDI+能使用的所有方法。 本文讲述了三种方法,其中第一种方法有两种不同效果,第三种方法有两种不同的实现方式。文中有方法使用了GDi+,关于GDI+的使用请自行查询资料,本文不进行细述。 方法一:窗体整体透明,支持子控件透明,支持

l198738655的博客 3283

实现LAYERED窗口

LAYERED窗口是与普通窗口不同的窗口,这个窗口可以提供复杂的形状,可以使用alpha混合特效,而且,由系统自动构图和重绘layered窗口,因此,在这种窗口的WM_PAINT消息,我们基本上不用的。也正因为如此,layered窗口可以平滑的渲染。 要创建layered窗口,在我们调用CreateWIndow的时候,指定WS_EX_LAYERED样式,在mfc中,如果是对话框,我们可以在对话框

xinzhiyounizhiyouni的专栏 2015

窗体样式使用WS_EX_LAYERED后,无法绘制windows控件的解决办法

根据一副png图片绘制半透明窗体时,用了WS_EX_LAYERED后当前窗体再也不会处理paint事件,所以所含的子控件是一辈子也不会画出来的,但是这个控件确实存在,而且可以响应事件 。而此时windows画制窗体是使用UpdateLayeredWindow这个api函数的。 其实这个问题,3年前就在csdn网友miky的"笨笨钟"发布后就讨论过了,后来出了一个叫桌面天气秀 的东东也采用类似的...

xiaoer 1203
上一篇: 中文分词词典构造简述
下一篇: 天干地支六十四卦
b2b160
博客等级 码龄20年 2408粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

b2b160

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

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

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

打赏作者

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

抵扣说明:

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

余额充值