文章導(dǎo)讀: [準備工作] 1、將SkinMagicTrial.dll放置在調(diào)試目錄 2、設(shè)置庫文件目錄,在項目[連接器]的[附加依賴項]中加入庫SkinMagicTrial.lib 3、在項目的stdafx.h文件中加入頭文件 #include "SkinMagicLib.h" [創(chuàng)建過程] 1、初始化SkinMagic庫:
[準備工作]
1、將SkinMagicTrial.dll放置在調(diào)試目錄
2、設(shè)置庫文件目錄,在項目[連接器]的[附加依賴項]中加入庫SkinMagicTrial.lib
3、在項目的stdafx.h文件中加入頭文件 #include "SkinMagicLib.h"
[創(chuàng)建過程]
1、初始化SkinMagic庫:
要使用SkinMagic,這一步必不可少。在應(yīng)用程序類的InitInstance()函數(shù)中行加入如下代碼(粗體部分):
CWinApp::InitInstance();
VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL ,
NULL, NULL ));
說明:
int InitSkinMagicLib( //初始化SkinMagic工具庫
HINSTANCE hInstance, //應(yīng)用程序句柄
char* szApplication , //皮膚文件中定義的應(yīng)用程序名,置為NULL即可
char* szRegCode, //SkinMagic的使用注冊碼。若無置為NULL
char* szReserved2 //保留位,為NULL
);
2、調(diào)入皮膚文件:
皮膚的調(diào)用有兩種方法,一是直接從皮膚文件中調(diào)用,另一種方法是從資源文件中調(diào)用,分別說明如下:
1)從皮膚文件中調(diào)用皮膚:緊接上句,加入如下代碼
VERIFY( 1 == LoadSkinFile("corona.smf"));
2)從資源文件中調(diào)用皮膚:
VERIFY(1 == LoadSkinFromResource(NULL,"FUTURA","skin"));
說明:
int LoadSkinFromResource(
HMODULE hModule, //包含皮膚文件的模塊句柄,若NULL表面在本模塊中
char* lpSkinName , //皮膚資源的名稱
char* lpType); //資源的類型
3、為窗口添加皮膚:
1)為標準窗口(擁有標題欄、系統(tǒng)菜單、可變大小等特征,比如文檔/視圖結(jié)構(gòu)和有菜單的對話框)添加皮膚,通常用于主窗口。在應(yīng)用程序類的InitInstance()函數(shù)的底部加入如下代碼:
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
說明:
int SetWindowSkin(
HWND hWnd, //要使用皮膚的窗口句柄
char* lpSkinName //為skinFrameWnd對象指定的名稱
);
2)為對話框添加皮膚
在對話框顯示之前調(diào)用,通常在應(yīng)用程序初始化函數(shù)中調(diào)用
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
VERIFY( 1 == SetDialogSkin( "Dialog" ) );
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
說明:
int SetDialogSkin(
char* lpSkinName //為skinFrameWnd對象指定的名稱
);
使用該函數(shù)后,以后程序創(chuàng)建的對話框都將使用該皮膚,但對話框大小不可變。
3)為單個對話框窗口添加皮膚,例如在對話框視圖中:重載對話框視圖的創(chuàng)建函數(shù)OnCreate,加入如下代碼:
VERIFY( 1 == SetSingleDialogSkin( m_hWnd, "Dialog" ) );
EnableWindowScrollbarSkin( m_hWnd , SB_BOTH );
說明:
int SetSingleDialogSkin(
HWND hWnd, //要使用皮膚的窗口句柄
char* lpSkinName //為skinFrameWnd對象指定的名稱
);
int EnableWindowScrollbarSkin( //為滾動條添加皮膚
HWND hWnd, //要使用皮膚的窗口句柄
int* fnBar //要使用皮膚的滾動條,SB_BOTH表明是橫豎都是用皮膚
);
4、釋放SkinMagic資源
重載應(yīng)用程序的ExitInstance()函數(shù),添加如下代碼:
ExitSkinMagicLib();