我想用透明度創建頂層窗口(即非WS_CHILD)。然而,我不希望它是一個簡單的面具,其中一個給定的像素是完全透明或完全不透明的。而且我不希望整個窗口對它有一些alpha級別。相反,我希望這個窗口基本上是完全透明的,用一個alpha通道繪製一個位圖,這樣位圖就可以和它後面的任何窗口混合在一起。圖片,比如說,一個陽光照射,圖像自己的alpha從不透明到從中心向外完全透明的混合。透明頂層窗口
我發現兩種方法,都得到接近我想要做的,但並不完全。使用區域,我可以剪出一個完全透明的部分。使用分層窗口,我也可以做類似的事情(甚至可以使整個窗口稍微透明,但這不是我想要的)。我研究過其他樣式,例如WS_EX_TRANSPARENT和WS_EX_COMPOSITE,但無濟於事。
我能得到這樣的效果上下工夫子窗口就好了,因爲它們與他們的父母的區域內其父窗口交融。讓頂級窗口以類似的方式工作仍然無法實現。
我知道這是可以做到,因爲人們都向我保證,他們已經看到了它在其他程序中。我覺得我只是沒有完全理解關於繪畫窗口的一些簡單的東西。
我的問題是我不理解如何正確使用UpdateLayeredWindow,所以沒想到我需要它。關鍵是設置混合函數併爲位圖提供正確的直流。所以,得到它的工作,謝謝! – 2009-02-17 17:10:52