`
eto95eto
  • 浏览: 22519 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

MFC使用Skin++

阅读更多

  一.使用皮肤
  1.将SkinPPWTL.lib 、skinppwtl.dll 、SkinPPWTL.h三个文件及相应皮肤(**.ssk)拷贝至工程文件夹下;一般还要将这些文件放在Debug文件夹下。 2.在StdAfx.h文件中加入#include "SkinPPWTL.h" 和#pragam comment(lib,"SkinPPWTL.lib")
  //.. #endif // _AFX_NO_AFXCMN_SUPPORT #include "SkinPPWTL.h" //在这个地方加 #pragma comment(lib,"SkinPPWTL.lib") //{{AFX_INSERT_LOCATION}} //..  3.在BOOL CXXApp::InitInstance()函数中加入:
  BOOL CWwApp::InitInstance() { AfxEnableControlContainer(); //… skinppLoadSkin(_T("blue.ssk"));//blue.ssk为项目下的皮肤文件 #ifdef _AFXDLL //… }  注:以上假定(假定已经将blue.ssk皮肤放在了工程文件夹下),如果不是请更改路径设置。
  5.在工程中添加现有项-》头文件SkinPPWTL.h
  二.卸载Skin++
  在程序的卸载函数中加入ExitInstance()
  skinppExitSkin();
  三、vs2003以上容易遇到的问题
  今天想综合应用下这几天学习的东西,就在Visual C++ 2010 环境下使用了SKIN++给软件提供换皮肤主题的功能,开始一切正常,已经将换肤子菜单添加到系统菜单中,后在做背景贴图的时候,想将出错提示的MessageBox()更换为在WIN7、Vista环境下支持的TaskDialog对象,就将项目的字符集更改为了UNICODE字符集,这下好了,因为用到了skinppLoadSkin 与skinppExitSkin 方法,在编译时老师提示错误:LINK skinppLoadSkin 方法错误!
  后来终于找到了解决方法,其实很简单:打开skinPPWTL.h头文件,
  将skinppLoadSkin(TCHAR* szSkinFile,BOOL bFromIni = FALSE); 
  原型改为skinppLoadSkin(CHAR* szSkinFile,BOOL bFromIni = FALSE);
  即去掉那个字母T,在调用时,去掉_T(),如将skinppLoadSkin(_T("skin\\redstar.ssk"));
  更改为skinppLoadSkin("skin\\redstar.ssk");
  就OK啦!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics