SkinMagic是一款很好的换肤工具,使用起来也比较简单。

准备工作:
1、将SkinMagicTrial.dll放置在当前目录中,如果需要直接双击执行的话还要放到Debug文件夹里

2、设置库文件目录,在project->setting->link中加入库SkinMagicTrial.lib
      或者直接用#pragma comment(lib, "SkinMagicTrial.lib")动态加入lib文件

3、在项目的stdafx.h文件中加入头文件   #include   "SkinMagicLib.h" 

后面就可以开始了:
4、初始化SkinMagic。在App类中的InitInstance()中加入以下函数:
     VERIFY( 1   ==   InitSkinMagicLib(AfxGetInstanceHandle(), NULL , NULL,   NULL   ));  
    
      说明:   
      int   InitSkinMagicLib(   //初始化SkinMagic工具库   
      HINSTANCE   hInstance,   //应用程序句柄   
      char*   szApplication   ,   //皮肤文件中定义的应用程序名,置为NULL即可   
      char*   szRegCode,   //SkinMagic的使用注册码。若无置为NULL   
      char*   szReserved2   //保留位,为NULL   
      );   
    
4、调入皮肤文件:   
      皮肤的调用有两种方法,一是直接从皮肤文件中调用,另一种方法是从资源文件中调用,分别说明如下:   
    
      1)从皮肤文件中调用皮肤:紧接上句,加入如下代码   
      VERIFY(   1   ==   LoadSkinFile("corona.smf"));   
    
      2)从资源文件中调用皮肤:   
      VERIFY(1   ==   LoadSkinFromResource(NULL,"FUTURA","skin"));   
    
      说明:   
      int   LoadSkinFromResource(   
      HMODULE   hModule,   //包含皮肤文件的模块句柄,若NULL表面在本模块中   
      char*   lpSkinName   ,   //皮肤资源的名称   
      char*   lpType);   //资源的类型   
    
5、为窗口添加皮肤:   
      1)为标准窗口(拥有标题栏、系统菜单、可变大小等特征,比如文档/视图结构和有菜单的对话框)添加皮肤,通常用于主窗口。在应用程序类的InitInstance()函数的底部加入如下代码:   
    
      VERIFY(   1   ==   SetWindowSkin(   m_pMainWnd->m_hWnd   ,   "MainFrame"   ));   
    
      m_pMainWnd->ShowWindow(SW_SHOW);   
      m_pMainWnd->UpdateWindow();   
    
      说明:   
      int   SetWindowSkin(   
      HWND   hWnd,   //要使用皮肤的窗口句柄   
      char*   lpSkinName   //为skinFrameWnd对象指定的名称   
      );   
    
      2)为对话框添加皮肤   
      在对话框显示之前调用,通常在应用程序初始化函数中调用   
    
      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对象指定的名称   
      );   
      使用该函数后,以后程序创建的对话框都将使用该皮肤,但对话框大小不可变。   
    
      3)为单个对话框窗口添加皮肤,例如在对话框视图中:重载对话框视图的创建函数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表明是横竖都是用皮肤   
      );   
 
6、动态调用皮肤
     在菜单中加入选项,在函数中加入下面程序即可
CString m_sFilePath; 

CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle = "皮肤对话框";
fileDlg.m_ofn.lpstrFilter = "SMF Files(*.smf)\0*.smf\0";

if(IDOK == fileDlg.DoModal())
{
m_sFilePath = fileDlg.GetPathName();
if (1 != LoadSkinFile(m_sFilePath))
AfxMessageBox("μ÷è¡Æ¤·ô3ö′í");
}

return;
  
7、释放SkinMagic资源   
        
      重载应用程序的虚函数ExitInstance(),添加如下代码:   
    
      ExitSkinMagicLib();