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++基本类似。这里就不做介绍。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值