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

本文提供了一个详细的步骤指南,教你如何在工程中引入和使用皮肤++(Skin++),包括下载资源、配置文件、初始化和退出等关键操作。适用于不同版本的Skin++,包括0.1.3、2.0和3.0,特别强调了VS2005环境下使用2.x和3.x版本时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

皮肤资源 下载地址:http://download.youkuaiyun.com/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;
}

下载地址:http://download.youkuaiyun.com/detail/abidepan/4511277


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值