一 / 学习 ActiveSkin的使用
 1。例程:
        ActiveSkin 4.3 软件换肤在VC中的实现
MFC基本对话框工程 UseActSkin:
C:\Program Files\Microsoft Visual Studio\MyProjects\UseActSkin

 1.1. 添加Active控件
 1.2. 在StdAfx.h中加入//目的是导入ActiveSkin的函数接口库。
    #include <atlbase.h>
    #import "actskn43.ocx" no_implementation raw_interfaces_only raw_native_types
    using namespace ACTIVESKINLib;
1.3. 在Dlg.cpp文件里添加语句:    
CComQIPtr<ISkin> m_pSkin=GetDlgItem(IDC_SKIN)->GetControlUnknown();//m_pSkin是应用程序全局量。
    m_pSkin->LoadSkin(L"皮肤文件X的路径");//如果ActiveSkin控件中已有皮肤,此句可省略。
    m_pSkin->ApplySkin((int)m_hWnd);
Q: 不知道加在哪
尝试:a.在 BOOL CUseActSkinDlg::OnInitDialog() 中加入
结论:Pass
Q:m_pSkin->LoadSkin(L"皮肤文件X的路径");
1.3.1去掉L则出现系统错误。
1.3.2使用路径C:\Program Files\ActiveSkin 4.3\Skins\B-Studio.skn,则皮肤没有变化。路径中有空格,好像不行。将文件直接考到工作目录即可。

1.4 程序运行时更换皮肤。在对话框上建立一个Button,并添加Click事件:   
 void CMy1Dlg::OnBNewSkin()
    {
      static char BASED_CODE szFilter[] = "ActiveSkin Files (*.skn)|*.skn||";//文件过滤器设置。
      CFileDialog dlg(FALSE, ".skn", NULL, OFN_HIDEREADONLY, szFilter);//Skin文件选择窗口。
      if (dlg.DoModal() == IDOK)//Skin文件选择成功:
      {
        USES_CONVERSION;
        m_pSkin->LoadSkin(T2W(dlg.GetPathName()));//载入指定的Skin文件。
        m_pSkin->ApplySkin((int)m_hWnd);//使当前Skin生效。
      }
    }
  Q: 加入 CComQIPtr<ISkin> m_pSkin=GetDlgItem(IDC_SKIN)->GetControlUnknown();这句话方可。