MFC学习之 SKIN++皮肤使用方法
2015-12-06 21:51
489 查看
皮肤资源 下载地址: 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()函数中加入:
[cpp] view
plaincopyprint?
BOOL CWwApp::InitInstance()
{
skinppLoadSkin(_T("blue.ssk"));//blue.ssk为项目下的皮肤文件
//..
}
4、如果是SDI/MDI程序,则要重载ExitInstance
[cpp] view
plaincopyprint?
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);
[cpp] view
plaincopyprint?
USES_CONVERSION;
CString str = _T("SoftCrystal.ssk");
CHAR *buf = T2A(str);
InitializeSkin(buf);LoadSkin(buf);
(5)去除风格,调用:RemoveSkin();
(6)设置某控件不用skin++风格:
[cpp] view
plaincopyprint?
SetNoSkinHwnd(HWND hWnd);
USES_CONVERSION;
CString str = _T("SoftCrystal.ssk");
CHAR *buf = T2A(str);InitializeSkin(buf);LoadSkin(buf);
[cpp] view
plaincopyprint?
注意:此方法只设置hWnd本身不用风格,而不能设置子窗口风格。
3,在2.0以后的文件名:SkinPPWTL.h,SkinPPWTL.dll,SkinPPWTL.lib。使用方法一样,只不过成员函数都在0.1.3的前面加了个skinpp。
4,特别注意,在VS2005里面,设置UNICODE后,用skin++2.x,3.x的版本的时候,
需要在头文件中,
[cpp] view
plaincopyprint?
将: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*,不能用一般的转换方法,会报错,试验没错的方法:
方法一:
[cpp] view
plaincopyprint?
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、将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()函数中加入:
[cpp] view
plaincopyprint?
BOOL CWwApp::InitInstance()
{
skinppLoadSkin(_T("blue.ssk"));//blue.ssk为项目下的皮肤文件
//..
}
4、如果是SDI/MDI程序,则要重载ExitInstance
[cpp] view
plaincopyprint?
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);
[cpp] view
plaincopyprint?
USES_CONVERSION;
CString str = _T("SoftCrystal.ssk");
CHAR *buf = T2A(str);
InitializeSkin(buf);LoadSkin(buf);
(5)去除风格,调用:RemoveSkin();
(6)设置某控件不用skin++风格:
[cpp] view
plaincopyprint?
SetNoSkinHwnd(HWND hWnd);
USES_CONVERSION;
CString str = _T("SoftCrystal.ssk");
CHAR *buf = T2A(str);InitializeSkin(buf);LoadSkin(buf);
[cpp] view
plaincopyprint?
注意:此方法只设置hWnd本身不用风格,而不能设置子窗口风格。
3,在2.0以后的文件名:SkinPPWTL.h,SkinPPWTL.dll,SkinPPWTL.lib。使用方法一样,只不过成员函数都在0.1.3的前面加了个skinpp。
4,特别注意,在VS2005里面,设置UNICODE后,用skin++2.x,3.x的版本的时候,
需要在头文件中,
[cpp] view
plaincopyprint?
将: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*,不能用一般的转换方法,会报错,试验没错的方法:
方法一:
[cpp] view
plaincopyprint?
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
相关文章推荐
- STL Allocator rebind
- JavaScript 简单的计算器
- 从0到1:开启商业与未来的秘密
- 从大数据菜鸟走上大师的历程
- bootstrap——完美的分页查询
- Windows ->> Windows下一代文件系统 -- Resilient file system(ReFS)
- 初遇ping++
- Maya Mel进阶篇[以后有关Mel的都写在这]
- mybatis在xml文件中处理大于号小于号的方法
- Template(模板)设计模式
- IOS之nil,Nil,null,Null,NULL,NSNull
- 【Leetcode】First Missing Positive
- Strust2_学习笔记(四)----中文问题、数据校验
- 【Asp.net MVC】AJAXHelper 和jQueryAjax
- 【转】适配器模式
- VIM之taglist
- Arduino 平台与C语言程序设计-week2-C Programming-Lesson2
- App Bar上的一系列操作
- TKY工作总结
- 探索日志的奥秘 - 模版挖掘