界面皮肤
来源:互联网 发布:以太域名申请 编辑:程序博客网 时间:2024/06/10 19:51
SkinMagic(动态库方法,需要携带DLL链接库):
只适用于ANSI 版本,不适用于 Unicode 版本,所以VS2010需要设置字符集(Character Set)为非Unicode,选择(Not Set)
1.复制 SkinMagicTrial.dll、SkinMagicTrial.lib、SkinMagicLib.h 以及皮肤文件 *.smf 至工程目录下
2.stdafx.h中添加代码:
#include "SkinMagicLib.h"
#pragma comment(lib, "SkinMagicTrial.lib")
3.、在 CXXXXXApp::InitInstance() 函数中添加代码:
对话框代码:
CCListCtrlDlg dlg;//原有代码
m_pMainWnd = &dlg;//原有代码
VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
VERIFY( 1 == LoadSkinFile("xpblue.smf"));
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
VERIFY( 1 == SetDialogSkin( "Dialog" ) );
INT_PTR nResponse = dlg.DoModal();//原有代码
文档视图类代码:
m_pMainWnd->ShowWindow(SW_SHOW); //原有代码
m_pMainWnd->UpdateWindow(); //原有代码
VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
VERIFY( 1 == LoadSkinFile(_T("kromo.smf")));
VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , _T("MainFrame") ));
VERIFY( 1 == SetDialogSkin( _T("Dialog") ) );
4.在 CXXXXXApp::ExitInstance() 函数中添加代码:
ExitSkinMagicLib();
Skin++(动态库方法,需要携带DLL链接库):
只适用于ANSI 版本,不适用于 Unicode 版本,所以VS2010需要设置字符集(Character Set)为非Unicode,选择(Not Set)
1、复制 SkinPlusPlusDLL.dll、SkinPlusPlusDLL.lib、SkinPlusPlus.h 以及皮肤文件 *.ssk 至工程目录下;
2.stdafx.h中添加代码:
#include "SkinPlusPlus.h"
//#pragma comment(lib, "SkinPlusPlusDLL.lib")
如果出错,则到SkinPlusPlus.h中修改
#pragma comment(lib,"SkinPlusPlusDLL.lib") 代码
3.、在 CXXXXXApp::InitInstance() 函数中添加代码:
对话框代码:
InitializeSkin(_T("XPCorona.ssk"));
int nResponse = dlg.DoModal(); //原有代码
文档视图类代码:
m_pMainWnd->ShowWindow(SW_SHOW); //原有代码
m_pMainWnd->UpdateWindow(); //原有代码
InitializeSkin(_T("XPCorona.ssk"));
4.在 CXXXXXApp::ExitInstance() 函数中添加代码:
ExitSkin();
Skin++(静态方法,不需要携带DLL链接库,但需要携带皮肤文件)://不支持Unicode
1.复制 SkinPPD6.lib、SkinPPR6.lib、SkinPPD8.lib, SkinPPR8.lib, SkinPPWTL.h 以及皮肤文件 *.ssk 至工程目录下;
2.stdafx.h中添加代码:
#include "SkinPPLIB/SkinPPWTL.h"
并修改SkinPPWTL.h中的代码SkinPP/SkinPPR8.lib为SkinPPLIB/SkinPPD6.lib
#if (_MSC_VER < 1299) // for VC6.0
#ifdef _DEBUG
#pragma comment(lib, "SkinPPLIB/SkinPPD6.lib")
#else
#pragma comment(lib, "SkinPPLIB/SkinPPR6.lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib, "SkinPPLIB/SkinPPD8.lib")
#else
#pragma comment(lib, "SkinPPLIB/SkinPPR8.lib")
#endif
3.在 CXXXXXApp::InitInstance() 函数中添加代码:加在int nResponse = dlg.DoModal();前面
skinppLoadSkin(_T("vladstudio.ssk"));
如果使用VC6.0则会报错:error C2065: '_tcscpy_s' : undeclared identifier
修改 _tcscpy_s(szResImageName, _MAX_FNAME, _T(""));为_tcscpy(szResImageName, _T(""));
4、在int CXXXXXXApp::ExitInstance() 中添加skinppExitSkin();
5、把控件(如CEdit)添加成变量后,点击右键会崩溃,错误原因在DDX_Control(pDX, IDC_EDT_TEXT, MyEDT);将这句改成MyEDT= (CEdit*)GetDlgItem(IDC_EDT_TEXT);即可,定义CEdit* MyEDT;
VCLSkin(只适用于对话框,不适用于单文档、多文档,支持ANSI/UNICODE):
1.复制 CSySkin.h、CSySkin.cpp、Skin.dll 以及皮肤文件 *.skn 至工程目录下
2.VC中新建个文件夹名为VCLSkin,将CSySkin.h、CSySkin.cpp放在这里
3.在CXXXXXApp类中,定义一个CSySkin类的对象,如:CSySkin skin
4.在 CXXXXXApp::InitInstance() 函数中加入代码:
从文件加载:
skin.LoadDLLFromPath(_T("Skin.dll"));
skin.LoadSkinFromPath(_T("Macos01.skn"));
skin.InstallSkin();
从资源加载:
skin.LoadDLLFromRes(IDR_VCLSKIN_DLL, _T("VCLSKIN_DLL"));
skin.LoadSkinFromRes(IDR_VCLSKIN_SKIN, _T("VCLSKIN_SKIN"));
skin.InstallSkin();
5.在 CXXXXXApp::ExitInstance() 函数中加代码:
skin.UnInstallSkin(TRUE);
或者
skin.UnInstallSkin();
- 界面皮肤
- 求助WinForms界面皮肤
- VS2005界面皮肤
- Actskin 界面皮肤
- QML皮肤 界面汉化
- MFC界面皮肤
- C#界面皮肤加载
- mfc界面加上皮肤
- MFC皮肤界面美化
- VC 界面库 皮肤库
- GUI皮肤界面的尝试!
- VC 界面库 皮肤库
- VC 界面库 皮肤库
- VC 界面库皮肤库
- 更换Winform界面的皮肤
- VC 界面库皮肤库
- VC 界面库 皮肤库
- VC 界面库 皮肤库
- 【JMX】2. JMX通知模型:Notification
- SQL 优化原则
- const【C++】
- 多媒体支持
- 如何使用C#对虚拟磁盘文件(VHD)进行操作
- 界面皮肤
- iOS图像拉伸,stretchableImageWithLeftCapWidth
- javascript 版分页类, 可用于ajax
- SqlMapClient对象
- JS中冒号的用法
- ubuntu搭建NTP服务器
- 算法的时间复杂度
- word读取
- 【Objective-C指针与CoreFoundation指针之间的转换】