VC6.0中MFC界面换肤简例
利用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界面换肤简例的更多相关文章
- VS中基于对话框的MFC利用换肤改变边框颜色及格式
第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/ar ...
- 在VC6.0中能不能使用Duilib界面库呢?
Duilib库的源代码是在vs2010下编译的,一般适用于vs2008及以上的版本开发使用,那么duilib能不能在vc6.0的工程中使用呢?如何在vc6.0中使用duilib库呢? 今天,由于工作要 ...
- 在WPF中创建可换肤的用户界面
原文:在WPF中创建可换肤的用户界面 在WPF中创建可换肤的用户界面. ...
- 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 ...
- [置顶] 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' ...
- [转贴]从零开始学C++之STL(二):实现一个简单容器模板类Vec(模仿VC6.0 中 vector 的实现、vector 的容量capacity 增长问题)
首先,vector 在VC 2008 中的实现比较复杂,虽然vector 的声明跟VC6.0 是一致的,如下: C++ Code 1 2 template < class _Ty, cl ...
- VC6.0中添加库文件和头文件
附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“ ...
- angular2中一种换肤实现方案
思路:整体思路是准备多套不同主题的css样式.在anguar项目启动时,首先加载的index.html中先引入一套默认的样式.当我们页面有动作时再切换css. 可以通过url传参触发,也可以通过bu ...
- VC6.0中重载操作符函数无法访问类的私有成员
整理日: 2015年03月18日 在 C++ 中,操作符(运算符)可以被重载以改写其实际操作.同时我们可以定义一个函数为类的朋友函数(friend function)以便使得这个函数能够访问类的私有成 ...
随机推荐
- PHP笔试题(转载)
整理了一份PHP高级工程师的笔试题,问题很全面.嗯,基本上这些题都答得不错,那么你应该可以胜任大部分互联网企业的PHP职位了.下面直接上题. 1. 基本知识点 HTTP协议中几个状态码的含义:503, ...
- 复制文件的bat脚本
数据库备份到不同的机器上的一段脚本 使用系统的copy 命令来复制单个文件 如果要复制某个文件夹,则使用xcopy 命令 set date=%Date:~0,4%%Date:~5,2%%Date:~8 ...
- folly
一.简介 Folly是,Facebook于2012年6月初开源的一个基于C++11的C++组件库,提供了类似Boost库和std库的功能,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能 ...
- 升级了win10后开启wifi热点出现iphone&macbook连接断线的问题(win7也一样)
升级了win10后开启wifi热点出现iphone&macbook连接 不间断 断线的问题 文后附上开启虚拟wifi的办法 百度参考了别人也出现这种问题,解决办法是修改信道,默认信道是11,修 ...
- nagios 自定义插件demo
#!/bin/bash loadavg=$( uptime | awk -F: '{print $4}' | xargs ) load1int=$( ) load5int=$( ) load15int ...
- [原创]cin、cin.get()、cin.getline()、getline()、gets()、getchar()的区别
这几个输入函数经常搞不清具体特点和用法,这里稍作总结 一.cin>> 1.最基本用法,输入一个变量值 2.输入字符串,遇“空格”.“TAB”.“回车”结束,比如输入“hello world ...
- python实现插入排序
代码如下@.·.@ # *-* coding: utf- *-* if __name__ == '__main__': def insert_sort(l): ,len(l)): tmp = l[i] ...
- 分享一个解决MySQL写入中文乱码的方法
分享一个解决MySQL写入中文乱码的方法 之前有发帖请教过如何解决MySQL写入中文乱码的问题.但没人会,或者是会的人不想回答.搜索网上的答案并尝试很多次无效,所以当时就因为这个乱码问题搁浅了一个软件 ...
- UESTC 876 爱管闲事 --DP
题意:即求给定n个数字(a1,a2,……an),不改变序列,分成M份,使每一份和的乘积最大. 思路:dp[i][j]表示把前i个数字,分成j份所能得到的最大乘积. 转移方程:dp[i][j] = ma ...
- HTML5和css3的总结
简单的罗列一个HTML5的新东西,以后的几天里详细的过一遍一个挺有用的网站:www.css88.com [H5的新标签] 用之前的标签完全可以代替的:header footer aside atric ...