我想要做的事很簡單,但似乎並沒有很多關於它的信息。基本上我有一個正常的非透明父窗口,我想要在該父窗口內放置一個子窗口(它有自己的非透明控件)。所以我唯一要做的就是將子窗口的背景畫筆設置爲透明,但仍然繪製白色背景。嘗試使用WS_EX_LAYERED風格和SetLayeredWindowAttributes,但它使子窗口不可見。設置透明背景Win32
7
A
回答
5
有兩種基本方式來實現在Windows「透明」的子控件:在父窗口
手柄WM_CTLCOLORXXX消息。 這是使現有控件支持透明度的一種便捷方式。每個控件都會發送一個適合於控件類型的WM_CTLCOLORxxx消息。如果您創建了代表對話框背景皮膚的畫筆,並從每條消息中返回該畫筆,則淨效果就好像每個控件都塗有透明的外部區域。 但是,如果您想使用Alpha效果或使控件在物理上彼此重疊,則會失敗。
在父窗口上使用WS_EX_COMPOSITED。 沒有這種風格,窗口管理器畫的子窗口的順序是不確定的,實際上是從上到下。當嘗試alpha混合重疊控件時,結果將是......不愉快的。 WS_EX_COMPOSITED將確保子窗口從下到上繪製。確保您不使用WS_CLIPCHILDREN或WS_CLIPSIBLINGS樣式,因爲這樣可以防止重疊區域被繪製。
你仍然需要做一些事情通過WM_CTLCOLORXXX消息巧妙的標準控件仍然會試着和對話框的背景灰色填充他們的整個矩形。
相關問題
- 1. 設置CGContext透明背景
- 2. 設置透明背景
- 3. 設置透明背景
- 4. 將JPanel背景設置爲透明
- 5. 如何設置UITableViewCell背景不透明?
- 6. 設置在android中透明背景alertdialog
- 7. 如何設置SurfaceView背景透明
- 8. 設置菜單背景是不透明
- 9. 我如何設置透明背景?
- 10. 爲背景設置常量半透明
- 11. AChartEngine設置背景和邊距透明
- 12. Ho將JxBrowser背景設置爲透明
- 13. Cocos3d:將CC3Scene背景設置爲透明
- 14. 爲QWebView設置透明背景
- 15. UILabel設置透明背景顏色?
- 16. 設置形狀背景透明在android
- 17. 將SpenSurfaceView背景設置爲透明
- 18. 如何爲DataGrid設置透明背景?
- 19. 將jInternalFrame背景設置爲透明
- 20. WindowEx:背景顏色設置爲透明
- 21. SDL_SetColorKey不設置背景透明
- 22. 儘管透明設置爲'true',但沒有透明背景。
- 23. 透明背景
- 24. Emacs,hl線條背景。如何設置透明背景顏色?
- 25. 工具欄與漸變背景設置標題背景透明
- 26. html透明背景
- 27. 與透明背景
- 28. Iframe透明背景
- 29. webview透明背景
- 30. NSTableCellView透明背景
可能重複:http://stackoverflow.com/questions/3970066/creating-a-transparent-window-in-c-win32 – 2011-05-19 11:23:23
沒有。 Windows上的透明子窗口和透明頂層窗口的技術完全不同。 – 2011-05-19 11:56:18