[MFC美化] Skin++使用詳解-使用方法及注意事項


 

主要分為以下幾個方面:

1.Skin++使用方法

2.使用中注意事項

 

一. Skin++使用方法

SkinPPWTL.dll、SkinPPWTL.libSkinPPWTL.h ,將三個文件及相應皮膚(.ssk)拷貝至工程文件夾下

1.加載Skin++

1).在工程stdafx.h文件中加入#include "SkinPPWTL.h"

//..
#endif // _AFX_NO_AFXCMN_SUPPORT 
#include "SkinPPWTL.h"   //在這個地方加
#pragma comment(lib,"SkinPPWTL.lib") //或者在(附加依賴項)"Project->Settings->Link->Object/library"中加入SkinPPWTL.lib
//{{AFX_INSERT_LOCATION}}

2). 在APP類文件的InitInstance()中加入初始化語句InitInstance()

BOOL CWwApp::InitInstance()
{

AfxEnableControlContainer();
//
skinppLoadSkin(_T("blue.ssk"));//blue.ssk為工程文件夾下的皮膚文件
//skinppLoadSkinFromRes();//靜態資源加載, 在皮膚.h文件中有函數聲明,參數自填
#ifdef _AFXDLL // }

 備注:更換皮膚只需要在事件中調用該函數即可。

2.卸載Skin++

 在APP類文件的卸載函數ExitInstance()中加入:
  skinppExitSkin(); //退出界面庫,做清理工作。

 

二、使用中的注意事項

1. Skin++免費版是只支持ANSI方式,但VS2010在默認情況下編碼為UNICODE方式,如果在編譯鏈接時不把編碼改為ANSI方式則無法正常生成。

解決方法: 項目 - 屬性 - 配置屬性 - 常規 - 字符集 - 使用多字節字符集。

2. 項目在使用多字節字符集下編譯可能會出現其他的錯誤,如不能將CString轉化為LPCWSTR等。

解決方法:將字符集改回為原來的UNICODE方式,然后skinppLoadSkin(_T("blue.ssk")); 改為skinppLoadSkin("blue.ssk"); 然后在SkinPPWTL.h頭文件里定義一個typedef char MYCHAR變量,並替換所有的TCHAR, 並將語句TCHAR_tcscpy(szResImageName, _T("")); 改為strcpy(szResImageName, ""); 即可,編譯即可通過。

3. 在UNICODE編碼下的使用

官方說法,只有企業版才支持UNICODE。如果您的程序正好不是ANSI。。那么下面的方法可能會對您有所幫助。。一般咱們用SKIN++,只用到了skinppLoadSkin 與skinppExitSkin 。。

如果是UNICODE程序,在編譯時會提示LINK skinppLoadSkin 方法錯誤。

其實只要把SkinPPWTL.h里的

skinppLoadSkin(TCHAR* szSkinFile, BOOL bFromIni = FALSE);

原型改為

skinppLoadSkin(CHAR* szSkinFile, BOOL bFromIni = FALSE);

在調用時

skinppLoadSkin((CHAR*)"vladstudio.ssk");

就OK了。

4. 其有關使用和SkinMagic類似,皮膚DLL都是動態生成的,項目exe都需要DLL。在運行時,需要將四個文件放到程序文件下,在生成了DEBUG文件后,如果想讓DEBUG文件中的程序可以直接運行,那就需要將皮膚文件與DLL動態連接庫文件都放到DEBUG文件中,RELEASE文件中一樣,打包時就將四個文件一起打包.

Skin++的菜單和下拉框(滑動條)顯示正常,使用較方便。

 

附件:見文件

 

有關鏈接:

MFC學習之 SKIN++皮膚使用方法

http://blog.csdn.net/ksp416/article/details/50198781

 http://blog.csdn.net/suxinpingtao51/article/details/44036163

http://blog.sina.com.cn/s/blog_6c86952d01013fzd.html

http://www.cnblogs.com/phinecos/archive/2008/04/14/1152696.html

http://www.emsky.net/bbs/archiver/?tid-28229.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM