您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關如何實現C++語言中的毛玻璃效果,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
在基于Windows Vista的普通Windows應用程序及對話框程序中,如何利用C++語言來生成Aero毛玻璃效果,此處使用的是Beta 2版本的Vista及Windows SDK,現在就讓大家看一下震撼的效果吧。
一些API在細節上會有所變化。另外,文中沒有使用MFC,全部例子用WTL 7.5生成,其可在http://wtl.sourceforge.net/下載得到,雖然此處使用的是Visual C++ 2003,但Visual C++ 2005也類似。
Aero主題及毛玻璃效果,是隨同Vista"桌面窗口治理(DWM)"而來的新特性,也是微軟市場推廣的一個重心,在應用程序中集成毛玻璃效果,當打開Aero主題時,程序看上去會顯得非常與眾不同--很酷,對吧。
Aero主題中的毛玻璃效果
當以Aero為主題時,Vista會根據計算機顯卡進行判定是否開啟毛玻璃效果,此時桌面由DWM進行繪制,而DWM使用一個composition進程來渲染桌面,其會在頂層窗口的非客戶區自動使用Aero主題元素(有點類似于Windows XP)。又說回來,也不是總會添加這些毛玻璃效果的,假如計算機運行于"電池模式",或用戶決定關閉透明效果,那么非客戶區就不會有毛玻璃效果了,如下圖所示。
假如在控制面板的可視效果中打開了透明玻璃效果,那非客戶區看上去就像下圖這樣:
請留意,記事本的邊框呈現綠色調,這是墻紙透過來的顏色,并且也可以透過標題欄看到桌面的一些圖標。我們在編寫代碼的時候,要害只須留意composition是否打開,而不是設置了什么毛玻璃效果,因為DWM會處理毛玻璃效果繪制的部分。
項目開始
***個示例程序是不帶視窗口、工具條、狀態條的SDI應用程序,在運行完WTL AppWizard之后,***件事就是設置stdafx.h中的#define,以便利用Vista的新特性。Vista的Windows版本為6,且Vista中IE的版本為7,設置完成后應像下面這樣:
在GetThemeTextMetrics() API中的轉換,是對Platform SDK的uxtheme.h中錯誤的修正,然而,Windows SDK卻沒有這個錯誤,所以這個轉換導致了一個錯誤,可刪除函數中的這個轉換,其他三個也同樣。 添加邊框的毛玻璃效果。
看完上述內容,你們對如何實現C++語言中的毛玻璃效果有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。