安装说明
本篇文章的加载方式为静态加载皮肤,也就是程序在发布的时候不需要Xtreme ToolkitPro
的DLL文件。
首先我们要先要编译一个静态库
,具体操作如下:
然后就是等待编译完成,这个编译速度和你的机器有关系,一般情况下差不多需要10-20分钟
就可以编译完成,还请耐心等待。
新建MFC工程
我这里新建一个MFC的基本对话框
工程,其他的工程也是类似操作,具体的构建过程如下。
增加皮肤资源
可以说这里是我们的重头戏,打开开始菜单
-Codejock Software
-Xtreme ToolkitPro 2012 (15.3.1)
-Utilities
-Skin Builder
应用,然后随便将一个皮肤到处到我们的工程中。
可以看到Office.rc
是我们的导出的主题资源
代码实现
引用资源
首先我们需要在rc2
文件中添加资源#include "res\Office.rc"
问题处理
这时编译程序会发现RC2135
这些错误,这些错误主要是我们把资源放到res
文件夹下了,解决办法很简单。
Copyright (C) Microsoft Corporation. All rights reserved.
.\res\Office.rc(12) : error RC2135 : file not found: res\NormalBlue.ini
.\res\Office.rc(13) : error RC2135 : file not found: res\Blue_FrameCaption.png
.\res\Office.rc(14) : error RC2135 : file not found: res\Blue_FrameCaptionSizing.png
.\res\Office.rc(15) : error RC2135 : file not found: res\Blue_SmallFrameCaption.png
打开Office.rc
然后操作如下,就可以解决这个问题。
添加代码
打开XtremeThemeDemoDlg.cpp
文件,并定位到XtremeThemeDemoDlg的构造函数
,然后添加下面代码
CXtremeThemeDemoDlg::CXtremeThemeDemoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CXtremeThemeDemoDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
// 使用Xtreme ToolkitPro加载皮肤资源
XTPSkinManager()->GetResourceFile()->SetModuleHandle(AfxGetInstanceHandle());
XTPSkinManager()->SetApplyOptions(xtpSkinApplyFrame | xtpSkinApplyColors | xtpSkinApplyMetrics | xtpSkinApplyMenus);
XTPSkinManager()->LoadSkin(NULL, _T("NormalBlue.ini"));
}
编译运行
可以看到这是我的运行结果,换肤成功。