利用VC中的MFC进行界面设计时,发现界面上的各控件无法简易地进行调整,比如字体大小、颜色、格式等。

  为了改变外观,小小地美化一下,今天决定动手一试。

  网上提供的库和方法不计其数,我选择了SkinMagic的破解版http://ishare.iask.sina.com.cn/f/34174084.html

  其实具体用时,只需其中的几个文件,下面简单介绍一下整个流程:

1、打开VC6.0,新建一个MFC基于对话框的应用程序Skin;

2、在CSkin.cpp(.h文件添加在StdAfx.h中也可行)中添加:
  #include "SkinMagicLib.h"
  #pragma comment(lib,"SkinMagic.lib")
  //这一步是添加SkinMagic.lib库文件,和第七步两者有其一即可

3、将SkinMagicLib.h,SkinMagic.dll,SkinMagic.lib,和皮肤文件"corona.smf"添加到当前目录
  //或将皮肤资源添加到res资源目录(文件)中,直接通过资源名导入,皮肤资源文件名称自行改变

4、在CSkinApp类的InitInstance()函数创建主窗口之前,就是在此函数开始位置添加:
  //初始化SkinMagic库,此函数的第二个参数 "Skin"是当前工程名
  VERIFY(InitSkinMagicLib(AfxGetInstanceHandle(),"Skin", NULL, NULL));
  //从资源中加载皮肤文件LoadSkinFromResource(AfxGetInstanceHandle(),(LPCTSTR)IDR_SKINMAGIC1, "SKINMAGIC")
  //上面的函数的第二个参数IDR_SKINMAGIC1是自己添加到工程中的资源
  //在此我采用直接从文件中加载的方式:
  if(LoadSkinFile("SkinName.smf"))
  {
    //设置对话框默认皮肤
    SetDialogSkin("Dialog");
  }

5、在CSkinApp类中重载虚函数ExitInstance(),添加ExitSkinMagicLib()的调用,即:

BOOL CSkinApp::ExitInstance()
{
  ExitSkinMagicLib();
  return CWinApp::ExitInstance();
}

6、 修改资源文件:
  单击菜单命令Insert/Resource..弹出插入资源对话框;单击按钮”Import“,导入资源皮肤“corona.smf”到工程中;
  因为这不是标准资源,所以会弹出自定义资源类型对话框,这里输入SKINMAGIC单击OK按钮。

7、选择菜单栏工程/ 设置,在连接—>对象/库模块处,添加库文件SkinMagic.lib,

运行,界面外观得到了很大的改善,具体的方案我们可以根据.smf皮肤文件调整。

VC6.0中MFC界面换肤简例的更多相关文章

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

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

  2. 在VC6.0中能不能使用Duilib界面库呢?

    Duilib库的源代码是在vs2010下编译的,一般适用于vs2008及以上的版本开发使用,那么duilib能不能在vc6.0的工程中使用呢?如何在vc6.0中使用duilib库呢? 今天,由于工作要 ...

  3. 在WPF中创建可换肤的用户界面

    原文:在WPF中创建可换肤的用户界面 在WPF中创建可换肤的用户界面.                                                                  ...

  4. VC6.0中友元函数无法访问类私有成员的解决办法

    举个例子: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 #inclu ...

  5. [置顶] c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date'

    c++,vc6.0,中友元函数,无法访问私有字段(private)的问题(problem),cannot access private member declared in class 'Date' ...

  6. [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)

    首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下:  C++ Code  1 2   template < class _Ty, cl ...

  7. VC6.0中添加库文件和头文件

    附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“ ...

  8. angular2中一种换肤实现方案

    思路:整体思路是准备多套不同主题的css样式.在anguar项目启动时,首先加载的index.html中先引入一套默认的样式.当我们页面有动作时再切换css.  可以通过url传参触发,也可以通过bu ...

  9. VC6.0中重载操作符函数无法访问类的私有成员

    整理日: 2015年03月18日 在 C++ 中,操作符(运算符)可以被重载以改写其实际操作.同时我们可以定义一个函数为类的朋友函数(friend function)以便使得这个函数能够访问类的私有成 ...

随机推荐

  1. 第一篇 UEditor入门部署和体验

    UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. UEditor富文本编辑器,轻量, ...

  2. MAC、IDFA、IMEI正则表达式

    一.安卓: MAC:接入网络的设备的序号,唯一值.用 16 进制数表示,由 0-9,A-F 组成,如:44:2A:60:71:CC:82 Uuid 正则表达式: ^([0-9a-fA-F]{2})(( ...

  3. linux—【绝对路径与相对路径】与【【文件基本操作】】(4)

    [绝对路径与相对路径] 绝对路径:我们在获得一个文件的时候,从根目录到二级到更多级目录都写全了, 终才找到这个文件,这种方式就是“绝对路径” 相对路径:目标文件与我本身文件的相对位置 当前目录:./  ...

  4. 怎样Zbrush 4R7中添加和删除SubTool

    添加或删除SubTool在ZBrush®软件中是非常简单易操作的,通常在用SubTool面板已经给我们提供了相应的命令来对其进行操作,它能够将一个或多个格式为ZTL的文件同时添加进SubTool里. ...

  5. python实现虚拟茶话会

    这个项目目的是编写一个聊天服务器,该聊天服务器的功能有: 服务器能同时接收来自不同用户的连接 允许用户同时操作 能够解释命令,例如,say或者logout命令 服务器容易扩展 这个项目里面我们会使用到 ...

  6. vector中pair的排序方法

    直接上代码: bool judge(const pair<int,char> a, const pair<int ,char> b) { return a.first<b ...

  7. Jedis下的ShardedJedis(分布式)使用方法(二)

    上一篇中介绍了ShardedJedis的基本使用方法以及演示了一个简单的例子,在这一篇中我们来介绍了ShardedJedis的原理. 1.ShardedJedis内部实现 首先我们来看一下Sharde ...

  8. xshell5 启动显示 mfc110.dll msvcp110.dll 未找到问题 解决办法

    1. 安装 Visual C++ Redistributable for Visual Studio 2012 x86版本 注意: 一定要安装x86版本.(xshell5是32位的程序) 微软的官方下 ...

  9. [转] 值得推荐的C/C++框架和库

    http://www.cppblog.com/merlinfang/archive/2014/12/26/209311.aspx

  10. 关于tcpdump抓包一个很详细的介绍

    http://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html