SkinMagic、Skin++和VCLSkins皮肤库的使用

在进行开发的过程中发现MFC本身的界面比较丑,查阅资料说可以直接借用第三方界面库。使用(SkinMagicSkin++VCLSkins)皮肤库,来直接美化界面。

一、开发环境
  1. VS 2017
  2. SkinMagicSkin++VCLSkins皮肤库
二、SkinMagic的使用方法
1. 制作SkinMagic

需要自己使用SkinMagic提供的SkinMagicBuildr设计自定义风格的一套皮肤。这里我使用的是网上已经制作好的,若自己有兴趣可以去进行制作。

2. 往项目中添加SkinMagic文件

注意:SkinMagic只适用多字节符集,不适用于Unicode字符集

复制 SkinMagicTrial.dllSkinMagicTrial.libSkinMagicLib.h 以及皮肤文件 *.smf文件到工程目录下
pch.h头文件下添加:

#include "SkinMagicLib.h" 
#pragma comment(lib,"SkinMagic.lib")//调用皮肤lib  
2. 初始化SkinMagic加载皮肤文件

在`InitInstance()"函数下添加:

VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), _T("SCRIBBLE"), NULL, NULL));//初始化SkinMagic
VERIFY(1 == LoadSkinFile(_TEXT("KromoBlue.smf")));//加载皮肤文件
3. 给窗体加载皮肤

如果对话框没有菜单,则在CXXXDlg类的OnInitDialog函数`下添加:

//对话框没有菜单
VERIFY( 1 == SetWindowSkin( this->m_hWnd , TEXT("Dialog")));//设置皮肤样式 
4. 释放皮肤

CXXXXXApp::ExitInstance() 函数中加入以下代码,其中XXXXX为工程名称,若不存在 ExitInstance()函数,请自行添加。在CXXXAPP类下,重写ExitInstance()函数:

int CSkinMagicApp::ExitInstance()
{
	ExitSkinMagicLib();
	return CWinApp::ExitInstance();;
}
5、运行效果

展示如下几个效果图:

①corona.smf显示效果

corona

②KromoBlue.smf显示效果

SkinMagic_Run

③Devior.smf显示效果

Devior

6、特别提示
(1)、如果工程中需要添加菜单、则在OnInitDialog调用下面函数。
	CMenu *pMenu = new CMenu();
	pMenu->LoadMenu(IDR_MENU1);//IDR_MENU1为菜单栏ID号
	SetMenu(pMenu);
	
	_hWnd, TEXT("Dialog")));//设置皮肤样式
	return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
(2)、如果是单文档或者多文档,则在InitInstance中添加如下代码:
m_pMainWnd->ShowWindow(SW_SHOW);	
m_pMainWnd->UpdateWindow();		//在这两个下面添加

VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));
VERIFY( 1 == LoadSkinFile(_T("kromo.smf")));
三、Skin++的使用方法

有了使用SkinMagic皮肤库的经验在使用Skn++那就简单了。基本类似

1. 往项目中添加文件

注意:Skin++只适用多字节符集,不适用于Unicode字符集

SkinPPWTL.libskinppwtl.dllSkinPPWTL.h三个文件及相应皮肤(**.ssk)拷贝至工程文件夹下

2. 初始化Skin++加载皮肤文件

InitInstance中添加如下函数:

skinppLoadSkin(_T("AngeliteV2.ssk"));
3. 在释放皮肤

ExitInstance中调用:skinppExitSkin(); 释放资源

int CSkinApp::ExitInstance()
{
	skinppExitSkin();
	return CWinApp::ExitInstance();
}
4.运行效果
①AngeliteV2.ssk显示效果

Skin++

四、VCLSkins 的使用方法

注意:VCLSkinS只适用对话框,不适用单文档和多文档。VCLSkins采用的是Delphi里边成熟的界面组件vclskin,将它做成Dll来用。

VCLSkins的使用方式与SkinMagicSkn++基本类似。这里就不做介绍。

SkinMagic SDK是为C/C++程序员设计的函数,通过使用提供的API可以很方便的为你 的应用程序增加最流行的换皮肤的功能。SkinMagic是基于图片的皮肤系统,只要简单的几个 函数调用你的应用程序就具有了换皮肤的功能。通过SkinMagicBuilder皮肤编辑工具,你可以 定制自己特色的皮肤。 History of SkinMagic for C/C++ 2003.3.1 SkinMagic SDK V1.0 Bug Fixed: 1,SkinMagic SDK *Fix Radio button flicker problem *Fix Check button flicker problem *Fix Menu paint problem under MDI window *Fix Rebar problem *Fix menu scroll problem *Fix flicker problem when change skin. +Add automatic adjust control position by skin +Add font property to all control 2,SkinMagicBuilder +Add Zoom tool +Add Visual Object Editor +Add WYSWYG skin control edit. +Add SkinMagicEditor use guide. +Add more you can find in program. 2003.2.18 SkinMagic SDK V0.9 SP1 Bug Fixed: +SkinMagic.DLL support VC7(VC.NET) *Fix drag horizontal toolbar and drop to vertical dock position problem. *Fix MDI client window paint problem. *Fix Toolbar flicker problem. =========================== SkinMagic SDK Version0.8 =========================== 增加功能: 1,支持多线程 2,增加对Tab换皮肤功能 3,增加对Edit换皮肤功能 4,增加对RichEdit换皮肤功能 5,增加对ListBox换皮肤功能 6,增加对TreeView换皮肤功能 7,增加对ListView换皮肤功能 8,增加对Header换皮肤功能 9,增加对ScrollBar控件换皮肤功能 10,增加对Tab换皮肤功能 11,增加对Simple的ComboBox的换皮肤功能 12,增加TrackSkinPopupMenu函数支持右键菜单的换皮肤。 13,增加两个函数支持非标准的窗口的滚动条的换皮肤。 14,增加几个新的皮肤文件 15,增加SDKWTL的例子程序,增加一个控件换皮肤的例子程序。 16,增加一个对话框窗口显示菜单的例子程序。 17,增加一个用于动态链接MFC的LIB 修订的问题: 1,RemoveWindowSkin有问题会导致窗口的菜单丢失,程序退出的时候死机。 2,工具条上Disable的按钮的图标没有显示成Disable的状态。 3,在状态栏中的三个(通常情况)键盘状态指示器:NumLock,CapsLock,ScrollLock好像不能随键盘的状态的改变而动态地改变! 4,有时候系统按钮的菜单状态不是很合理 5,工具条从前在Button旁边有箭头表示该按钮支持菜单,现在使用以后箭头不见了 6,解决MDI窗口的一个刷新问题。 7,解决MFC中定义的函数连接的时候重复定义的问题。 8,修订无法实时刷新更新的菜单的问题。 ================================= SkinMagic SDK for Visual C++ Website:http://www.appspeed.com/ Support:support@appspeed.com =================================
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值