可以创建一个“透明的”hwnd窗口吗?我的意思是,该窗口没有背景或边框,但如果我有一个主窗口背景,并且我在背景上写了一些东西(或者如果我只是想通过窗口在某个区域添加文本),并且我想让它成为一个可点击的选项,以创建那种不可见但仍然可以点击的窗口,那么唯一的文本就是visible...like。
发布于 2014-05-11 05:50:35
在Windows2000和更高版本中,您可以创建一个具有WS_EX_LAYERED样式的顶级窗口(在Windows8和更高版本中,子窗口现在也可以使用WS_EX_LAYERED样式),然后使用SetLayeredWindowAttributes()或UpdateLayeredWindow()使该窗口透明。
创建纯色背景色,然后将该颜色设置为窗口的透明色。窗口上未使用该颜色的任何内容都将不会透明。操作系统将为您处理其余部分。
有关更多详细信息,请参阅MSDN:
SetLayeredWindowAttributes()UpdateLayeredWindow()发布于 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
发布于 2021-07-23 07:17:23
首先设置样式以启用图层:
SetWindowLong(itsec->first, GWL_EXSTYLE, GetWindowLong(itsec->first, GWL_EXSTYLE) & WS_EX_LAYERED);然后指示您是否希望透明度为alpha:
SetLayeredWindowAttributes(itsec->first, RGB(154,255,214), 200, LWA_ALPHA);https://stackoverflow.com/questions/23585212
复制相似问题