一分鐘學會使用SkinMagic美化介面
網路上的SkinMagic版本繁多,而且試用版,破解版並存,各版本之間支援的面板檔案也不盡相同,因此經常有人在網上詢問為何添加了SkinMagic沒有效果甚至導致程式崩潰之類的問題。這裡有一個可用的破解版本(包含VC6使用的庫和支援的常用面板檔案)SkinMagicToolkitV2.2.31。請注意這個包的大小為1.31M,如果小於1.31M說明下載不完全,則無法使用,建議使用迅雷下載。
一:檔案說明
SkinMagicLib.h 必須的標頭檔案,請新增到工程中。
SkinMagic.lib + SkinMagic.dll 動態連結庫配套使用
編譯時需要在工程中新增SkinMagic.dll,程式執行時需要SkinMagic.dll
以下版本的編譯出來的程式執行時不再依賴SkinMagic.dll
SkinMagicLibMD6.lib 靜態連結庫,用於VC6的Release版編譯
SkinMagicLibMT6.lib 靜態連結庫,用於VC6的Debug版編譯
二:使用步驟
1。把SkinMagicLib.h, SkinMagicLibMT6.lib, SkinMagicLibMD6.lib放到你的VC6工程目錄下
2。在StdAfx.h中新增
#include "SkinMagicLib.h"
3。在工程設定中新增對應的庫
Win32 Release中填上SkinMagicLibMD6.lib
Win32 Debug中填上SkinMagicLibMT6.lib
4。在InitInstance()函式的開始處新增初始化SkinMagic資源的程式碼。
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
5。在InitInstance()函式中載入面板檔案並設定程式面板。
你可以選擇新增面板檔案到資源中,並編譯到程式中。或者程式在執行時動態載入面板檔案
a. 比如新增corona.smf,設定資源型別為"SKINMAGIC", 資源ID為IDR_SKIN_CORONA
CBossKeyDlg dlg;
m_pMainWnd = &dlg;
//載入SkinMagic面板
VERIFY(1 == LoadSkinFromResource(NULL, (LPSTR)IDR_SKIN_CORONA, "SKINMAGIC"));
VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
VERIFY(1 == SetDialogSkin("Dialog"));
int nResponse = dlg.DoModalEx(bStartShow);
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
b. 程式在執行時動態載入面板檔案
CBossKeyDlg dlg;
m_pMainWnd = &dlg;
//載入SkinMagic面板
VERIFY(1 == LoadSkinFile("corona.smf"));
VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
VERIFY(1 == SetDialogSkin("Dialog"));
int nResponse = dlg.DoModalEx(bStartShow);
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
6。在ExitInstance()函式中釋放SkinMagic資源
//釋放SkinMagic資源:
ExitSkinMagicLib();