透明hwnd窗口
Transparent hwnd window
是否可以创建一个"透明"的hwnd窗口?我的意思是那个窗口没有背景或边框,只有文本可见。比如我有一个主窗口背景我在背景上写了一些东西(或者如果我想通过窗口在某个区域添加文本)我想把它设为可点击选项,创建那种不可见但仍可点击的窗口。
在Windows 2000及以后的版本中,你可以创建一个WS_EX_LAYERED
样式的顶级窗口(在Windows 8及以后的版本中,子窗口现在也可以使用WS_EX_LAYERED
样式),然后使用SetLayeredWindowAttributes()
或UpdateLayeredWindow()
使窗口透明。
创建纯色背景色,然后将该颜色设置为窗口的透明色。窗口上没有使用这种颜色的任何东西都不会是透明的。操作系统会为你处理其余的。
有关详细信息,请参阅MSDN:
- 分层窗口
- 使用分层窗口
-
SetLayeredWindowAttributes()
-
UpdateLayeredWindow()
从您的hwnd
标记,我假设您正在使用c++或至少可以访问Win32 API,有很多资源可以帮助您开始。这个概念叫做Window Compositing
。
透明的win32窗口和文本
快速和脏窗口透明度
如果你使用WPF而不是c++,这里有一个链接:WPF中的透明窗口
首先设置样式以启用图层:
SetWindowLong(itsec->first, GWL_EXSTYLE, GetWindowLong(itsec->first, GWL_EXSTYLE) & WS_EX_LAYERED);
然后指出你是否希望透明度为alpha:
SetLayeredWindowAttributes(itsec->first, RGB(154,255,214), 200, LWA_ALPHA);
相关文章:
- 获取 SFML 窗口的 HWND 和高可用性?
- 如何获取边缘窗口句柄 (HWND)?
- 我需要通过窗口句柄(HWND)获取文件,我该怎么办?
- 获取我单击的窗口的 HWND
- 设置 VLC drawable-hwnd 仍会创建一个新窗口
- 如何从其HWND上构建窗口的技术
- Win32获取从窗口WNDProc发送事件的对象的HWND
- 使用HWND切换窗口
- C++ - 查看 hWnd 窗口是否响应
- 如果带有HWND的窗口仍然存在,我该如何确定
- 如何使用他的HWND检查窗口是否有可见的滚动条
- 如何从具有特定HWND的窗口中获取文本
- 在QGraphicsScene上显示来自设备驱动程序的QWidget与本地窗口句柄(HWND)
- 确定 HWND 是否表示顶级窗口的最佳方法是什么?
- 窗口hwnd的ClassName正在修改一次
- 在运行时更改HWND窗口过程
- 透明hwnd窗口
- 在另一个现有hwnd窗口之后的窗口
- 如何在不使用CreateWindow(Ex)的情况下创建一个窗口(HWND)
- 获取由库调用创建的窗口的Window Handle (HWND)