作者:
北京林業(yè)大學(xué) 李少杰下載本文示例工程
代碼運(yùn)行效果圖如下:


以前看到瑞星和金山詞霸有換皮膚功能,很是羨慕,自己也想做個(gè)換皮膚的程序,但畢竟自己能力有限,以前在此處看到一篇介紹換皮膚功能的文章,但只能應(yīng)用在對(duì)話框程序上。我也試過(guò)像BCGCBar這樣的大型軟件,給我的感覺(jué)是軟件老是出問(wèn)題,應(yīng)用起來(lái)也很復(fù)雜。在年前我就看到本站有SkinMagic軟件包,但當(dāng)時(shí)不知怎么用,發(fā)了貼子也沒(méi)人回答。可能是很少有人用的緣故吧,本站也未更新此軟件包。偶然的一次機(jī)會(huì),讓我知道了怎樣來(lái)用它,
而且編譯出來(lái)的軟件體積很小,所以在這里向大家介紹一下,希望對(duì)大家有些幫助。
如何使用:
① 新建工程后,將SkinMagic包中的SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib拷貝到所在文件夾下,點(diǎn)擊Project->Add To Project->Files,包含到工程中。
② 在Resource View中點(diǎn)擊Import 菜單引入幾個(gè)Skin二進(jìn)制文件放在相同的“SKINMAGIC”文件夾下,分別給起一個(gè)名字(見(jiàn)源程序)。
③ 在stdafx.h中加入#include "SkinMagicLib.h"
④ 在此處添加如下內(nèi)容
if (!ProcessShellCommand(cmdInfo))
return FALSE;
/////////////////////////////////////////////////////////////////////////////////////////
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" ,NULL,NULL ) );//初始化類庫(kù)
VERIFY( 1 == LoadSkinFromResource( AfxGetInstanceHandle() , "KROMO" ,"SKINMAGIC") );//從資源中加載皮膚
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
VERIFY( 1 == SetDialogSkin( "Dialog" ) );
((CMainFrame*)m_pMainWnd)->m_bSkinned = TRUE;
((CMainFrame*)m_pMainWnd)->m_nIndex = 0;
////////////////////////////////////////////////////////////////////////////////////////////
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
⑤ 在MainFrame中加入換皮膚菜單,及相應(yīng)的函數(shù),在函數(shù)中加載皮膚。
void CMainFrame::OnDevior()
{
LoadSkinFromResource( AfxGetInstanceHandle() , "DEVIOR" ,"SKINMAGIC") ;
}
到此為止,完美的換皮膚程序就出來(lái)了。