全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2720
推到 Plurk!
推到 Facebook!

讓C++Builder視窗介面支援Aero Glass透明特效

 
enter2004
初階會員


發表:51
回覆:94
積分:34
註冊:2005-04-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-01-16 20:49:26 IP:114.37.xxx.xxx 訂閱
我寫了一個library簡單地將Vista/Win7 的AeroGlass 相關api包裝起來,
方便直接在視窗的透明區域上畫出文字跟支援Alpha通道的圖片。
因為BCB 2007並沒有提供任何function讓我們可以在AeroGlass的透明區域上畫出文字跟圖形
(我的library是針對C Builder 2007的,也只在此平台測試過)

此Library使用方式很簡單,應該看下圖就知道,主要有兩個函數"PrintText"與"DrawImageFromFile"
特別注意我有用到微軟GDI 的library,所以作業系統一定要有支援GDI ( Windows 2000以上的作業系統都有支援 )
agh.png

此library會檢查作業系統是否有支援AeroGlass 若有,則採用啟用Windows AeroGlass相關API進行繪圖
aero_enabled_bcb.png
若無支援AeroGlass,則僅使用傳統GDI函數進行繪圖。
aero_disabled_bcb.png
為了做到這個功能,翻遍了很多網路資料,但是絕大部分都沒有找到在C Builder上的文件 (大多數是VC 或者VC#)

所以摸了很久才在BCB上做出一樣的效果。

希望對日後研究AeroGlass API的人有幫助。
------
人生就像泡泡一樣,乘著風被吹著跑,等你發現時已經消失了。
就在快要消失的瞬間,希望能再飛高一點,
但是回神時總是慢了一步。
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-01-16 23:07:05 IP:118.167.xxx.xxx 未訂閱
感謝分享!
不知道BCB6是否可以正常使用 XD
enter2004
初階會員


發表:51
回覆:94
積分:34
註冊:2005-04-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-01-17 04:16:12 IP:114.37.xxx.xxx 訂閱
 我沒有在其他版本上試過,但根據我的猜測應該是BCB 2007版之後才能使用。

因為之前的版本可能沒有提供Vista/Win7的相關library或header

(Windows Vista是2006年年底出來的)
------
人生就像泡泡一樣,乘著風被吹著跑,等你發現時已經消失了。
就在快要消失的瞬間,希望能再飛高一點,
但是回神時總是慢了一步。
系統時間:2024-04-29 6:38:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!