2013-11-04 51 views

回答

0

渲染分層窗口只有兩個API函數:UpdateLayeredWindow()SetLayeredWindowAttributes()

UpdateLayeredWindow()要求您將窗口內容呈現到您自己的內存位圖HDC,然後在需要時顯示OS。

SetLayeredWindowAttributes()依靠要求您渲染的傳統WM_PAINT模式的操作系統提供HDC代替,這是作爲一個內存中的位圖HDC該操作系統適用影響你的渲染完成後實施。

+0

感謝您的回答。這是否意味着直到現在,分層窗口才是實現半透明窗口的唯一方式? – YOUKU

+0

分層窗口是在Windows 2000中引入的,因此它們已經存在了很長時間。它們是製作透明和/或alpha混合*浮動*窗口的首選方式(在Windows 8之前,不能將子窗口創建爲分層窗口)。 'SetLayeredWindowAttributes()'更容易編碼,因爲它可以與現有的基於WM_PAINT的代碼一起工作。 'UpdateLayeredWindow()'更高效但更難編碼,因爲它根本不使用'WM_PAINT'。所以選擇你想要使用哪種方法,但你必須使用其中一種。 –

相關問題