1. 程式人生 > >UpdateLayeredWindow實現自定義透明視窗

UpdateLayeredWindow實現自定義透明視窗

UpdateLayeredWindow

你是不是很想要一個很漂亮的半透明或是區域性透明的視窗呢,那就仔細看看原始碼吧。
關於updatelayeredwindow的中文介紹,看完還是像我一樣半知不解的就直接看原始碼吧。

函式可以實現的功能:實現帶透明(alpha)通道的視窗,使得視窗的各個位置都可以以不同程度進行色彩混合
不得不說的是updatelayeredwindow其實和SetLayeredWindowAttributes是有不同之處的
後者只能讓視窗全部變成一個透明度或者讓某個顏色透明,而前者的功能就比較強大了,只需要把要繪製的圖形繪製到後臺DC(png影象也行)中並填充alpha通道,然後呼叫updatelayeredwindow進行更新就可以顯示到前臺,並與後面的視窗進行色彩混合,看起來就像是半透明(由程式碼決定)的一樣。

這裡寫圖片描述

函式需要注意位置有:
本帖隱藏的內容

使用UpdateLayeredWindow之前必須給視窗加上WS_EX_LAYERED風格,並且需要注意的是加上WS_EX_LAYERED風格之後視窗不再響應WM_PAINT,所以UpdateLayeredWindow的呼叫時主動的。

非IDE環境執行時請使用Release版,並且將圖片檔案和程式放到一起,視窗支援拖動,雙擊關閉。

還是不會就看程式碼,要是程式碼都看不懂就來加我的 windows程式設計群
快速加群 群號:325939048****//註明要是版主覺得本群質量較低,或是有其他企圖,可直接刪除本行資訊。**