MFC学习之 SKIN++皮肤使用方法

皮肤资源 下载地址: http://download.csdn.net/detail/abidepan/4511277

1、将SkinPPWTL.lib  skinppwtl.dll SkinPPWTL.h三个文件及相应皮肤拷贝至工程文件夹下

2、在StdAfx.h文件中加入#include "SkinPPWTL.h"
//..
#endif // _AFX_NO_AFXCMN_SUPPORT 

#include "SkinPPWTL.h"   //在这个地方加

#pragma comment(lib,"SkinPPWTL.lib")

//{{AFX_INSERT_LOCATION}}

//..

3、在BOOL CXXApp::InitInstance()函数中加入:

  1. BOOL CWwApp::InitInstance()  
  2. {  
  3. skinppLoadSkin(_T("blue.ssk"));//blue.ssk为项目下的皮肤文件  
  4. //..  
  5. }  


4、如果是SDI/MDI程序,则要重载ExitInstance

  1. int CWwApp::ExitInstance()   
  2. {  
  3. // TODO: Add your specialized code here and/or call the base class  
  4. skinppExitSkin();  
  5. return CWinApp::ExitInstance();  
  6. }  

 

5.在工程中添加现有项-》头文件SkinPPWTL.h

我试验过了0.1.3和2.0,3.0版本的skin++.

 
1,SKIN++不同版本的用法不同,.ssk文件的格式也不同,所以不可以混用。(2.x和3.x的应该相同,但是跟0.1.3的不同)
2,在0.1.3版本的文件名:SkinPlusPlus.h,SkinPlusPlus.lib,SkinPlusPlus.dll,及ssk文件。
 关键方法:(1)添加文件,包含.h,包含lib。
      (2)在InitInstance中调用:InitializeSkin("dll/Minimized.ssk"); 来初始化。
      (3)在ExitInstance中调用:ExitSkin();   释放资源
      (4)在更改风格方法中,调用:LoadSkin(filename);

  1. USES_CONVERSION;  
  2. CString str = _T("SoftCrystal.ssk");   
  3. CHAR *buf = T2A(str);  
  4. InitializeSkin(buf);LoadSkin(buf);  

                     (5)去除风格,调用:RemoveSkin();
                (6)设置某控件不用skin++风格:    

  1. SetNoSkinHwnd(HWND hWnd);  
  2. USES_CONVERSION;  
  3. CString str = _T("SoftCrystal.ssk");   
  4. CHAR *buf = T2A(str);InitializeSkin(buf);LoadSkin(buf);  
  1. 注意:此方法只设置hWnd本身不用风格,而不能设置子窗口风格。  


3,在2.0以后的文件名:SkinPPWTL.h,SkinPPWTL.dll,SkinPPWTL.lib。使用方法一样,只不过成员函数都在0.1.3的前面加了个skinpp。
4,特别注意,在VS2005里面,设置UNICODE后,用skin++2.x,3.x的版本的时候,
需要在头文件中,

  1. 将:SKINPPWTL_API BOOL  skinppLoadSkin(TCHAR* szSkinFile,BOOL bFromIni = FALSE);  
  2. 改成:SKINPPWTL_API BOOL  skinppLoadSkin(CHAR* szSkinFile,BOOL bFromIni = FALSE);  


 5,在VS2005里面,调用 LoadSkin(char* SkinFile);方法时,从CString转化到char*,不能用一般的转换方法,会报错,试验没错的方法:
方法一:

  1. USES_CONVERSION;  
  2. CString str = _T("umskin.ssk");   
  3. CHAR *buf = T2A(str);  
  4. skinppLoadSkin(buf, FALSE);//blue.ssk为项目下的皮肤文件方法二:char* BasicFunction::StringToCharX(CString str)  
  5. {      
  6.     int len = WideCharToMultiByte( CP_ACP , 0 , str , str.GetLength() , NULL , 0 , NULL , NULL );  
  7.     char* pAscii =new char[len+1];  
  8.     len = WideCharToMultiByte(  CP_ACP , 0 , str , str.GetLength() , pAscii , len +1 , NULL ,NULL );  
  9.     pAscii[len] = 0;  
  10.     return pAscii;  
  11. }  
  12. char* BasicFunction::StringToCharX(CString str)  
  13. {      
  14.     int len = WideCharToMultiByte( CP_ACP , 0 , str , str.GetLength() , NULL , 0 , NULL , NULL );  
  15.     char* pAscii =new char[len+1];  
  16.     len = WideCharToMultiByte(  CP_ACP , 0 , str , str.GetLength() , pAscii , len +1 , NULL ,NULL );  
  17.     pAscii[len] = 0;  
  18.     return pAscii;  
  19. }  

下载地址: http://download.csdn.net/detail/abidepan/4511277

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值