用VC做程序的時(shí)候,,如果對(duì)界面樣式不滿意怎么辦?自己從各種控件基類繼承,,然后自繪么,?對(duì)高手來(lái)說(shuō),這雖然不能算是難題,,但是仍舊比較麻煩,,對(duì)新手來(lái)說(shuō),連看什么書都不好說(shuō),。
那就沒有更好的方法么,?當(dāng)然有!這就要用到一類稱作“界面換膚”的工具包了,。
且看這些工具包有什么作用,。當(dāng)你使用一個(gè)界面換膚工具包的后,在不改變代碼的基礎(chǔ)上(除了使用庫(kù)函數(shù)),,你的程序?qū)⒆兂闪硗庖粋€(gè)樣子,,當(dāng)然這個(gè)樣子可以很cool,也可以很poor,。下面我們來(lái)看看當(dāng)今有什么好的換膚工具包可以使用,。
1、SkinMagic
這個(gè)是一個(gè)比較強(qiáng)大的換膚工具包,,通過在自己的應(yīng)用程序中包含SkinMagicTrial.dll,、SkinMagicTrial.lib、SkinMagicLib.h和*.smf皮膚文件即可實(shí)現(xiàn)界面換膚的功能,。另外,,它還自帶了一個(gè)SkinBuilder,可以制作自己的皮膚文件,,并應(yīng)用到我們自己的應(yīng)用程序中,。它的功能很豐富,有近20個(gè)SDK形式的API可以調(diào)用,,用以輔助換膚功能,。它目前的最新版是2.4,可以到它老家下載http://www.,,但是下載回來(lái)的只是一個(gè)試用版,。試用版會(huì)有所限制,主要表現(xiàn)在:當(dāng)我們打開添加了皮膚的應(yīng)用程序的時(shí)候,會(huì)出現(xiàn)一個(gè)未注冊(cè)的對(duì)話框,;在SkinBuilder中會(huì)有一些限制,,如未注冊(cè)無(wú)法導(dǎo)出圖片等。當(dāng)然,,這些限制完全可以通過反匯編的方法破解掉,,有需要的朋友可以參看我的另一篇文章《關(guān)于SkinMagic的破解》。
2,、Skin++
這個(gè)換膚工具也比較不錯(cuò),,主要是從它的作用結(jié)果看出來(lái)的。這個(gè)由上海勇進(jìn)公司開發(fā)的控件庫(kù)現(xiàn)在也有很多版本,,可以對(duì)應(yīng)VC從6到8,,而且支持其他語(yǔ)言。在它的官方主頁(yè)上可以下載到最新2.0.1版的DEMO,,也因?yàn)槭荄EMO,所以可用的功能少的可憐,,只能看看人家的效果了,。另外,現(xiàn)在網(wǎng)上有這個(gè)版本的破解文件,,我沒有做測(cè)試,,不知能不能用。即使假設(shè)它能用,,但是DEMO版的Skin++沒有附帶皮膚編輯器,,所以其皮膚文件自然也沒法自己制作了。
3,、AppFace
這也是個(gè)不錯(cuò)的換膚工具,,附帶皮膚編輯器,而且其皮膚編輯器還支持鎖定皮膚的使用權(quán)限,,當(dāng)然這需要有序列號(hào)了,。按照這個(gè)軟件的說(shuō)法,它在加載皮膚的工作上進(jìn)行的優(yōu)化,,所以看起來(lái)它的執(zhí)行效率還是不錯(cuò)的,。網(wǎng)上可以下載到它的demo版,限制是沒有一個(gè)安裝程序,,所以也就沒法在發(fā)布軟件的時(shí)候用了,,而且開發(fā)庫(kù)appface.dll也有20天的試用限制,目前還沒有破解,。
4,、USkin
這個(gè)東西太棒了,而且完全是免費(fèi)的,也用不著破解,,它提供了免費(fèi)庫(kù)可以無(wú)限制的使用,。另外它還配有一個(gè)十分專業(yè)的皮膚編輯器,用于制作*.u3類型的皮膚文件,。當(dāng)前的版本是2.2,,不過按照官方的說(shuō)法,現(xiàn)在已經(jīng)測(cè)試并準(zhǔn)備發(fā)布2.3版了,。當(dāng)然,,天下沒有免費(fèi)的午餐,這樣一個(gè)專業(yè)又cool的軟件也是有一些限制的,。這體現(xiàn)在它那個(gè)專業(yè)的皮膚編輯器里面:對(duì)于按鈕的設(shè)計(jì),,免費(fèi)版不支持高亮的效果,另外在我使用的時(shí)候,,F(xiàn)rame和ProgressBar都沒有Background屬性,,這樣就沒法制作自己意愿的皮膚了,這多少是一種遺憾,。其實(shí)現(xiàn)形式和SkinMagic類似,。
5、SkinCrafter
這個(gè)軟件制作的皮膚效果相當(dāng)?shù)膰虖?,?dāng)然也是足夠cool了,!它的皮膚編輯器也很強(qiáng)大,支持的功能也很多,。不過這樣囂張的軟件,,在限制上更加囂張了。首先是運(yùn)行應(yīng)用程序的時(shí)候會(huì)彈出一個(gè)對(duì)話框,,其次是在應(yīng)用程序的標(biāo)題欄中添加未注冊(cè)的字符串,。這個(gè)最新版的破解我還沒有找到,但是較低的1.8.2版的破解補(bǔ)丁我還是有的,。另外,,這個(gè)似乎對(duì)Windows2000的支持很不好,運(yùn)行時(shí)會(huì)出現(xiàn)內(nèi)核錯(cuò)誤,,而在Windows XP上則沒問題,。
6、ActiveSkin
這個(gè)工具是用ActiveX組件技術(shù)實(shí)現(xiàn)的,,在添加初始化代碼的時(shí)候稍微有些復(fù)雜,,而且使用方法也和之前的各種不太相同。它依賴%windir%\system32\activeskin.ocx來(lái)工作,,不過這個(gè)ocx組件已經(jīng)被破解了,。它的功能也比較不錯(cuò),,只是其皮膚編輯器不支持豐富的控件,記憶中連ProgressBar都不能支持,,不知道是不是demo的問題(破解只能使其不出現(xiàn)未注冊(cè)對(duì)話框),。
7、DirectSkin
這個(gè)是由WindowBlind的那個(gè)公司(www.stardock.com)開發(fā)的,,實(shí)現(xiàn)方法也是采用組件的方式,,網(wǎng)上可以下到demo版,不提供皮膚編輯器,,另外限制也比較多,。關(guān)于它,我沒有做過多的試驗(yàn),。
以上都是一些比較成熟的換膚工具,,它們都提供了不錯(cuò)的定制方案,有的可以添加聲音,,有的可以支持alpha混合,,有的可以支持動(dòng)畫,有的還可以支持直接從WindowBlind的皮膚導(dǎo)入,,反正是五花八門,,爭(zhēng)奇斗艷。
另外還有一個(gè)比較小型的,,某種程度上說(shuō)還不成熟的換膚工具,比如SkinLoad,、LibUIDK等,。
要是讓我做個(gè)總結(jié)的話,如果有一種結(jié)合了Skin++的多平臺(tái),、SkinCrafter的皮膚編輯器,、USkin的免費(fèi)理念和SkinMagic的實(shí)現(xiàn)形式,那將是一個(gè)十分強(qiáng)大換膚工具,。另外,,如果有更多的高手可以寫寫如何自己制作換膚工具的話,對(duì)于想要學(xué)習(xí)的人來(lái)說(shuō),,將是多么可貴的財(cái)富呵~
不過沒有也沒有關(guān)系,,將來(lái)在WPF上做就好了。