今天來記錄一下我拖了很久的MFC換膚
第一步:添加文件
將這四個文件複製到你的項目工程目錄下(SkinMagic在網上有很多資源的)
corona.smf就是更換的皮膚文件
第二步:添加頭文件
1.實現在程序中添加
#pragma comment(lib,"SkinMagic.lib")
#include "SkinMagicLib.h"
這兩個.cpp都必須添加
2.添加頭文件
右擊“頭文件”,選擇添加,現有,然後找到這個頭文件,添加就闊以了
第三步:添加換膚程序
1.
VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), _T("SCRIBBLE"), NULL, NULL));//初始化SkinMagic
VERIFY(1 == LoadSkinFile(_TEXT("xpgrean.smf")));//加載皮膚文件
2.
在初始化中添加
VERIFY(1 == SetWindowSkin(this->m_hWnd, TEXT("Dialog")));//設置皮膚樣式
第四步:編譯
如果出現如下問題,不必驚慌,你會查到很多解決辦法,但是可能都解決不了問題,這時候你要看一看你是不是使用了unicode的字符集,改爲多字節就可以了
error LNK2019: 無法解析的外部符號 “int stdcall InitSkinMagicLib(struct HINSTANCE *,wchar_t const *,wchar_t const *,wchar_t const *)” (?InitSkinMagicLib@@YGHPAUHINSTANCE__@@PB_W11@Z),該符號在函數 “public: virtual int __thiscall CChangeSkinApp::InitInstance(void)” (?InitInstance@CChangeSkinApp@@UAEHXZ) 中被引用 C:\Users\Administrator\Desktop\ChangeSkin\ChangeSkin\ChangeSkin.obj