簡體   English   中英

透明窗口

[英]Transparent hwnd window

是否可以創建一個“透明”的 hwnd 窗口? 我的意思是該窗口沒有背景或邊框,但只有文本可見......就像我有一個主窗口背景並且我在背景上寫了一些東西(或者如果我只想添加文本在某些區域通過 window ),我想使它成為一個可點擊的選項,以創建那種不可見但仍可點擊的窗口。

在 Windows 2000 及更高版本上,您可以使用WS_EX_LAYERED樣式創建頂級窗口(在 Windows 8 及更高版本上,子窗口現在也可以使用WS_EX_LAYERED樣式),然后使用SetLayeredWindowAttributes()UpdateLayeredWindow()來創建窗戶透明。

創建純背景色,然后將該顏色設置為窗口的透明色。 窗口上不使用該顏色的任何內容都不會是透明的。 操作系統將為您處理其余的工作。

請參閱 MSDN 了解更多詳細信息:

根據您的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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM