2011-05-04 113 views
0

如何爲使用WS_CHILD樣式創建的窗口獲得與SetLayeredWindowAttributes相同的效果?有什麼解決方法嗎?從MSDN:SetLayeredWindowAttributes和WS_CHILD

要創建一個分層的窗口,指定WS_EX_LAYERED調用CreateWindowEx函數時,擴展窗口樣式,或者調用SetWindowLong函數來設置WS_EX_LAYERED已創建的窗口之後。在CreateWindowEx調用之後,只有在爲此窗口調用了SetLayeredWindowAttributes或UpdateLayeredWindow函數之後,分層窗口才會變爲可見。請注意,WS_EX_LAYERED不能用於子窗口。

回答

2

子窗口不能分層 - 此樣式僅對具有WS_POPUP樣式的窗口有效。解決這個問題的一種可能的方式是,創建一個WS_POPUP樣式的窗口,並在「父」窗口被移動時同步它的位置。

+1

從Windows 8開始,這不再是事實。從MSDN開始「Windows 8:頂級窗口和子窗口支持WS_EX_LAYERED樣式,以前的Windows版本只支持頂級窗口的WS_EX_LAYERED。」 – 2017-04-30 19:31:52

2

之前設置的透明孩子做到這一點:

首先爲它的MDI主窗口(SetWindowLong & SetLayeredWindowAttributes),
然後它會爲孩子的工作直接。

相關問題