· 将SkinMagicTrial.lib、SkinMagicTrial.dll和SkinMagicLib.h拷贝到项目根目录下,并在工程中添加;
· 把Skins文件夹放在项目根目录下;
· 建立一个MFC单文档项目;
· 将 #include "SkinMagicLib.h" 拷贝到 StdAfx.h文件中;
· 在C**App类中打开InitInstance()函数,在函数其开始部分增加
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), _T("ReadUI") ,NULL,NULL ) );
VERIFY( 1 == LoadSkinFile("Skins//corona.smf"));
· (1)在单文档程序中
· 在InitInstance()函数最后,但在以下代码之前,
// The one and only window has been initialized, so show and update it.
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
加入如下代码
VERIFY( 1 == SetDialogSkin( _T("Dialog") ) );
VERIFY( 1 == SetWindowSkin(m_pMainWnd->m_hWnd , _T("MainFrame") ) );
(2)在基于对话框的程序中
· 在InitInstance()函数最后,但在以下代码之前,
// The one and only window has been initialized, so show and update it.
INT_PTR nResponse = dlg.DoModal();
加入如下代码
VERIFY( 1 == SetWindowSkin(m_pMainWnd->m_hWnd , _T("MainFrame") ) );
(3)添加按钮或菜单修改界面皮肤
添加按钮事件的代码如下:
char strExt[]= "SkinMagic Files(*.smf)|*.smf||";
CFileDialog dlg( TRUE, "*.smf", "*.smf", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
strExt, this );
if (dlg.DoModal() == IDOK)
{
LoadSkinFile((char*)(LPCSTR)(dlg.GetPathName()));
}
这样通过选定皮肤文件任意修改皮肤。
· 通过类向导给C**App增加ExitInstance() 函数,内容如下
ExitSkinMagicLib();
return CWinApp::ExitInstance();
编译程序;即可运行成功。