用C++品嘗Vista美味[1]

字號(hào):

簡(jiǎn)介
    本文將演示在基于Windows Vista的普通Windows應(yīng)用程序及對(duì)話框程序中,如何利用C++來(lái)生成Aero毛玻璃效果,此處使用的是Beta 2版本的Vista及Windows SDK,也許在后續(xù)的版本中,一些API在細(xì)節(jié)上會(huì)有所變化。另外,文中沒(méi)有使用MFC,全部例子用WTL 7.5生成,其可在http://wtl.sourceforge.net/下載得到,雖然此處使用的是Visual C++ 2003,但Visual C++ 2005也類似。
    Aero主題及毛玻璃效果,是隨同Vista"桌面窗口管理(DWM)"而來(lái)的新特性,也是微軟市場(chǎng)推廣的一個(gè)重心,在應(yīng)用程序中集成毛玻璃效果,當(dāng)打開(kāi)Aero主題時(shí),程序看上去會(huì)顯得非常與眾不同--很酷,對(duì)吧。
    Aero主題中的毛玻璃效果
    當(dāng)以Aero為主題時(shí),Vista會(huì)根據(jù)計(jì)算機(jī)顯卡進(jìn)行判斷是否開(kāi)啟毛玻璃效果,此時(shí)桌面由DWM進(jìn)行繪制,而DWM使用一個(gè)composition進(jìn)程來(lái)渲染桌面,其會(huì)在頂層窗口的非客戶區(qū)自動(dòng)使用Aero主題元素(有點(diǎn)類似于Windows XP)。話又說(shuō)回來(lái),也不是總會(huì)添加這些毛玻璃效果的,如果計(jì)算機(jī)運(yùn)行于"電池模式",或用戶決定關(guān)閉透明效果,那么非客戶區(qū)就不會(huì)有毛玻璃效果了。
    如果在控制面板的可視效果中打開(kāi)了透明玻璃效果.
    請(qǐng)留意,記事本的邊框呈現(xiàn)綠色調(diào),這是墻紙透過(guò)來(lái)的顏色,并且也可以透過(guò)標(biāo)題欄看到桌面的一些圖標(biāo)。
    我們?cè)诰帉?xiě)代碼的時(shí)候,關(guān)鍵只須留意composition是否打開(kāi),而不是設(shè)置了什么毛玻璃效果,因?yàn)镈WM會(huì)處理毛玻璃效果繪制的部分。