国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

使用vc++創(chuàng)建windows透明窗口

2019-11-14 09:48:37
字體:
來源:轉載
供稿:網(wǎng)友

使用vc++創(chuàng)建windows透明窗口

windows下的透明窗口有不少的實現(xiàn)方法,最簡單的當屬空畫刷啦,但是這篇文章將的是用layer window(分層窗口)來實現(xiàn)透明窗口。 見過Vista/Win7中窗口漂亮的半透明特效嗎?用layer window可以輕松實現(xiàn),而且其實layer window在古老的windows2000中就已經(jīng)實現(xiàn)啦。基本不用考慮平臺的問題。

layer window其實就是擁有WS_EX_LAYERED風格的窗口,layer window有兩種創(chuàng)建方法,先天的、后天的。

先天的就是指創(chuàng)建時就指定WS_EX_LAYERED風格。只要在CreateWindowEx函數(shù)中的第一個參數(shù)中加上WS_EX_LAYERED即可。 后天的就是指創(chuàng)建完窗口再加入WS_EX_LAYERED風格。

LONG nRet = ::GetWindowLong(hwnd, GWL_EXSTYLE); nRet = nRet | WS_EX_LAYERED; ::SetWindowLong((hwnd, , GWL_EXSTYLE, nRet);

添加完WS_EX_LAYERED風格后還不能立刻就有效果,還要設置一些透明參數(shù)才能生效。 設置透明效果有兩個函數(shù),SetLayeredWindowAttributesUpdateLayeredWindow,通常使用前一個就夠了。 SetLayeredWindowAttributes函數(shù)用來設置窗口的透明參數(shù),第一個參數(shù)是窗口句柄,第二個是關鍵色,至于什么是關鍵色,后面會講,第三個是透明度,第四個是透明方式。 SetLayeredWindowAttributes可以設置兩種透明渲染模式,關鍵色透明和透明度,選擇那種方式取決于第四個參數(shù)。 1. LWA_COLORKEY代表使用關鍵透明色來渲染,此時第二個參數(shù)會起作用,第二個參數(shù)是一個rgb顏色值,可以通過RGB宏生成,當設置了此模式時,此窗口上所有和這個關鍵顏色值相同的地方會變透明。同時注意,透明的地方無法被鼠標點擊,鼠標會直接點擊透明窗口下面的地方。 2. LWA_ALPHA代表使用整體透明度來渲染,此時第三個參數(shù)會起作用。第三個參數(shù)是一個字節(jié)的整數(shù),0~255表示透明度,0完全透明,255不透明。用這種方式可以做出win7的玻璃半透明效果,注意窗口的所有地方都會透明,包含標題欄,當時我初學的時候,設了透明度為1,半天沒找到窗口在哪,以為代碼寫錯了。不過窗口是可以被鼠標點擊的。 3還有一種方式就是LWA_ALPHA|LWA_COLORKEY,兩種的特性都會有。 這就是透明參數(shù)的基本設置,還有一些復雜的設置可以使用UpdateLayeredWindow函數(shù),通常用于處理本身的會面中有透明通道的一些設置和對透明位置的一些控制。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 张北县| 仁怀市| 桦南县| 昌黎县| 临颍县| 铜川市| 阜新市| 喀什市| 东宁县| 松滋市| 长武县| 新疆| 高州市| 出国| 华阴市| 江门市| 景德镇市| 泸州市| 鄂州市| 松滋市| 类乌齐县| 乃东县| 南平市| 桃园市| 西华县| 化隆| 石泉县| 阿城市| 桓台县| 耒阳市| 北碚区| 南安市| 含山县| 永春县| 西安市| 徐汇区| 巴彦淖尔市| 巴青县| 五原县| 象山县| 宜君县|