首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >透明的hwnd窗口

透明的hwnd窗口
EN

Stack Overflow用户
提问于 2014-05-11 03:12:17
回答 3查看 7.5K关注 0票数 1

可以创建一个“透明的”hwnd窗口吗?我的意思是,该窗口没有背景或边框,但如果我有一个主窗口背景,并且我在背景上写了一些东西(或者如果我只是想通过窗口在某个区域添加文本),并且我想让它成为一个可点击的选项,以创建那种不可见但仍然可以点击的窗口,那么唯一的文本就是visible...like。

EN

回答 3

Stack Overflow用户

发布于 2014-05-11 05:50:35

在Windows2000和更高版本中,您可以创建一个具有WS_EX_LAYERED样式的顶级窗口(在Windows8和更高版本中,子窗口现在也可以使用WS_EX_LAYERED样式),然后使用SetLayeredWindowAttributes()UpdateLayeredWindow()使该窗口透明。

创建纯色背景色,然后将该颜色设置为窗口的透明色。窗口上未使用该颜色的任何内容都将不会透明。操作系统将为您处理其余部分。

有关更多详细信息,请参阅MSDN:

  • Layered Windows
  • Using Layered Windows
  • SetLayeredWindowAttributes()
  • UpdateLayeredWindow()
票数 3
EN

Stack Overflow用户

发布于 2014-05-11 03:24:18

从您的hwnd标签来看,我假设您正在使用C++,或者至少可以访问Win32应用程序接口,有很多资源可以帮助您入门。这个概念被称为Window Compositing

Transparent win32 window and text

Quick and Dirty Window Transparency

如果你使用WPF而不是C++,这里有一个链接:Transparent Windows in WPF

票数 1
EN

Stack Overflow用户

发布于 2021-07-23 07:17:23

首先设置样式以启用图层:

代码语言:javascript
复制
SetWindowLong(itsec->first, GWL_EXSTYLE, GetWindowLong(itsec->first, GWL_EXSTYLE) & WS_EX_LAYERED);

然后指示您是否希望透明度为alpha:

代码语言:javascript
复制
SetLayeredWindowAttributes(itsec->first, RGB(154,255,214), 200, LWA_ALPHA);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23585212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档