MFC学习之 皮肤使用方法 + 代码 + 下载地址

皮肤资源 下载地址: 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()函数中加入:

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


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

int CWwApp::ExitInstance() 
{
// TODO: Add your specialized code here and/or call the base class
skinppExitSkin();
return CWinApp::ExitInstance();
}

 

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);

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

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

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


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

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


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

USES_CONVERSION;
CString str = _T("umskin.ssk"); 
CHAR *buf = T2A(str);
skinppLoadSkin(buf, FALSE);//blue.ssk为项目下的皮肤文件方法二:char* BasicFunction::StringToCharX(CString str)
{    
    int len = WideCharToMultiByte( CP_ACP , 0 , str , str.GetLength() , NULL , 0 , NULL , NULL );
    char* pAscii =new char[len+1];
    len = WideCharToMultiByte(  CP_ACP , 0 , str , str.GetLength() , pAscii , len +1 , NULL ,NULL );
    pAscii[len] = 0;
    return pAscii;
}
char* BasicFunction::StringToCharX(CString str)
{    
    int len = WideCharToMultiByte( CP_ACP , 0 , str , str.GetLength() , NULL , 0 , NULL , NULL );
    char* pAscii =new char[len+1];
    len = WideCharToMultiByte(  CP_ACP , 0 , str , str.GetLength() , pAscii , len +1 , NULL ,NULL );
    pAscii[len] = 0;
    return pAscii;
}

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

 

 

 

 

 

 

 

 

 

 

       

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值