查了好几天关于MFC应用程序换肤的资料,经过各种莫名其妙的问题的困扰,现分享一下自己的体会。希望可

以避免一些弯路。另外会在附上一些资源。

环境:Windows 7 + VS2012 + SkinSharp(注:Skin++、USkin、SkinMagic 用法相同)

1. 新建一个工程(工程名:Demo)(比如一个基于对话框的MFC程序)

如图所示,注意不要勾选Use Unicode libraries ,否则可能会出现以下错误:见图

2. 添加相关文件(.h .lib .dll 以及皮肤文件)

下面就以SkinSharp、Skin++、USkin、SkinMagic中的一种(SkinSharp)进行示范,其他三种的操作基本

是大同小异。如图将SkinH.h和SkinH.lib文件导入工程文件的目录中,如下图所示:

请注意VC++6.0和VS2012下工程目录的不同之处,应该是Demo->Demo文件夹下(Demo是工程名),

然后加入工程的Header Files下:

3. 添加必要的代码

3.1 在stdafx.h中添加

#include "SkinH.h"
#pragma comment(lib, "SkinH.lib")
如图:

在BOOL CDemoApp::InitInstance() 函数下写

SkinH_Attach();
这句语句是加载默认的皮肤文件:skinh.she

3.3 试着编译工程,产生Debug文件(或者Release文件)

将以下文件放入Debug目录(工程根目录下的Debug文件夹)中如图:

3.4 再次编译工程即可看到换肤的效果:(添加的是只是skinh.she皮肤文件)

3.5 实现更“自由”的换肤

将SkinH_Attach(); 改为下句
SkinH_AttachEx("../Debug/Skins/Green.she", NULL);

运行效果如下:

3.6 如果出现缺少SkinH.dll, 就将该文件再放到C:\Windows\System32和C:\Windows\SysWOW64文件夹下,

然后重新编译运行就可以了。

4. 资源链接

Skin++、SkinSharp、USkin、SkinMagic以及该例程的代码在如下链接中:

http://download.csdn.net/detail/u011239916/8750419

相关链接:http://www.codeproject.com/Articles/13946/Use-the-Free-USkin-Toolkit-to-Skin-your-Applicatio

以上就是VS2012下MFC对话框应用程序的界面美化,还可以利用皮肤制作软件进行皮肤文件的制作,

让自己的应用程序告别单调,从此焕发生机!如果在运行中出现问题,可以给我留言,可以交流讨论。感

谢您的阅读,如有错误和不妥之处,请指点。Thank you very much!

MFC 使用Skin++ 美化皮肤的更多相关文章

  1. 【PYQT5快速开发】重定义边框、QSS美化皮肤主题

    在用qt designer的基础上重定义边框 前言 作为一名技术工作者,偶有使用.开发工具的需求.制作工具时,既不想在界面上花太懂功夫,又想要工具模样与众不同,结果找半天找不到一键换装的功能/拍砖. ...

  2. 实时&离线皮肤渲染技术(Real-time&Offline Skin Rendering)

    目录 现实皮肤模型 BSSRDF 渲染模型 [2001] Diffusion Profile(扩散剖面)[2001] 偶极子 [2002] 高斯和 [2007] Burley Normalized D ...

  3. VS中基于对话框的MFC利用换肤改变边框颜色及格式

    第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/ar ...

  4. Substance风格实例大全javaswing皮肤风格大全(原)

    转载请注明来路:http://www.cnblogs.com/langtianya/ 下图是所支持的设置 下面把上面的每一个选项的子选项进行试验 substance皮肤: AutumnSkin Bus ...

  5. My97 DatePicker 日期选择插件.

    My97DatePicker是一个纯js写的时间插件,体积较小,更可以自己扩展皮肤,且样式不和页面相冲突,有多钟配置,近期项目用了一下感觉还不错...分享给大家 软件官网:http://www.my9 ...

  6. laypage分页

    1.分页 laypage({ cont:$("#page"), //容器,仅支持id名\原生DOM对象,jquery对象 pages:, //总页数 skip:true, //是否 ...

  7. My97DatePicker的使用

    一. 简介 1. 简介 目前的版本是:4.8 2. 注意事项 My97DatePicker目录是一个整体,不可破坏里面的目录结构,也不可对里面的文件改名,可以改目录名 My97DatePicker.h ...

  8. 浅谈JS中的继承

    前言 JS 是没有继承的,不过可以曲线救国,利用构造函数.原型等方法实现继承的功能. var o=new Object(); 其实用构造函数实例化一个对象,就是继承,这里可以使用Object中的所有属 ...

  9. xhEditor用法

    xhEditor是一个基于jQuery开发的简单迷你并且高效的在线可视化HTML编辑器,而且兼容很多浏览器,所以就选它了,具体使用如下: 1 .下载xhEditor 最新版本 下载地址:http:// ...

随机推荐

  1. 巧用string中的contains巧解一道题目

    题目:求0—7所能组成的奇数个数.假设最高八位数字. package edu.yuliang.lianxiti50; /* 题目:求0—7所能组成的奇数个数. *程序分析:最少也是1位数,最多能组成8 ...

  2. A The Empire Age

    1月28日 Description 帝国时代3是一款十分刺激的RTS游戏.你需要控制自己的一块殖民地,发展殖民地的经济和军事,最终打败其他殖民地.小L是这个游戏的狂热爱好者.一次小L打算打AI试试身手 ...

  3. 同一个服务器部署两个Tomcat并用Nginx实现反向代理

    需求场景:由于服务器只有80端口可供外网访问,但需要部署两台tomcat来运行两个不同的项目,所以选择了nginx做反向代理 一个upstream tomcat_server对应一个  locatio ...

  4. Python帮助

    我们可以很容易的通过Python解释器获取帮助.如果想知道一个对象(object)更多的信息,那么可以调用help(object)!另外还有一些有用的方法,dir(object)会显示该对象的大部分相 ...

  5. Linux 环境下安装Mysql的步骤

    一,以linux cent 6.9 安装mysql 5.6.39为例#下载安装包wget --no-check-certificate https://dev.mysql.com/get/Downlo ...

  6. java web从入门到精通

    1.Springboot配置 1.1mybatis mapper.xml所在的目录必须为resource的资源文件夹,如果xml文件在java的package里面,需要修改文件夹类型 idea修改方式 ...

  7. 从hivesql结果中读取数值到shell变量的方法

    为了检查hive表中的数据,并统计展现,需要将查出的结果传入到shell变量,然后统一输出到文本. 最后使用了以下两个方法: 方法一 QUAN=$(hive -S -e "select co ...

  8. PTA L2-4 关于堆的判断

    先上题面 链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805064676261888 首先,题目描述的很清楚,这是 ...

  9. svo_udp通信02——一组数据发送

    注意事项: 1.client 和server 定义的发送和接收数据(结构)要相同.如: client.c: struct position_packet {float pos_x[5];float p ...

  10. APIPA

    自动专用IP地址(Automatic Private IP Address,APIPA)是当客户端无法从DHCP服务器中获得IP地址时自动配置的地址.IPv4地址前缀169.254/16已经被IANA ...