用SkinMagic工具包创建换皮肤程序

代码运行效果图如下:


以前看到瑞星和金山词霸有换皮肤功能,很是羡慕,自己也想做个换皮肤的程序,但毕竟自己能力有限,以前在此处看到一篇介绍换皮肤功能的文章,但只能应用在对话框程序上。我也试过像BCGCBar这样的大型软件,给我的感觉是软件老是出问题,应用起来也很复杂。在年前我就看到本站有SkinMagic软件包,但当时不知怎么用,发了贴子也没人回答。可能是很少有人用的缘故吧,本站也未更新此软件包。偶然的一次机会,让我知道了怎样来用它,

而且编译出来的软件体积很小,所以在这里向大家介绍一下,希望对大家有些帮助。

如何使用:

① 新建工程后,将SkinMagic包中的SkinMagicLib.h、SkinMagicLib.lib、DETOURS.lib拷贝到所在文件夹下,点击Project->Add To Project->Files,包含到工程中。

② 在Resource View中点击Import 菜单引入几个Skin二进制文件放在相同的“SKINMAGIC”文件夹下,分别给起一个名字(见源程序)。

③ 在stdafx.h中加入#include "SkinMagicLib.h"

④ 在此处添加如下内容

if (!ProcessShellCommand(cmdInfo))
  return FALSE;
/////////////////////////////////////////////////////////////////////////////////////////
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" ,NULL,NULL ) );//初始化类库
  VERIFY( 1 == LoadSkinFromResource( AfxGetInstanceHandle() , "KROMO" ,"SKINMAGIC") );//从资源中加载皮肤
  
  VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));
  VERIFY( 1 == SetDialogSkin( "Dialog" ) );
  ((CMainFrame*)m_pMainWnd)->m_bSkinned = TRUE;
  ((CMainFrame*)m_pMainWnd)->m_nIndex = 0;
  ////////////////////////////////////////////////////////////////////////////////////////////
  m_pMainWnd->ShowWindow(SW_SHOW);
  m_pMainWnd->UpdateWindow();

⑤ 在MainFrame中加入换皮肤菜单,及相应的函数,在函数中加载皮肤。

void CMainFrame::OnDevior()
{
   LoadSkinFromResource( AfxGetInstanceHandle() , "DEVIOR" ,"SKINMAGIC") ;
}

到此为止,完美的换皮肤程序就出来了。

本文配套源码

时间: 2024-08-18 09:42:00

用SkinMagic工具包创建换皮肤程序的相关文章

用SkinMagic工具包创建MFC换皮肤程序

以前看到瑞星和金山词霸有换皮肤功能,很是羡慕,自己也想做个换皮肤的程序,但毕竟自己能力有限,以前在此处看到一篇介绍换皮肤功能的文章,但只能应用在对话框程序上.我也试过像BCGCBar这样的大型软件,给我的感觉是软件老是出问题,应用起来也很复杂.在年前我就看到本站有SkinMagic软件包,但当时不知怎么用,发了贴子也没人回答.可能是很少有人用的缘故吧,本站也未更新此软件包.偶然的一次机会,让我知道了怎样来用它, 而且编译出来的软件体积很小,所以在这里向大家介绍一下,希望对大家有些帮助. 如何使用

[换皮肤程序]一个比较使用的脚本程序_javascript技巧

皮肤设置选项 颜色:

PyQt 4.8.5发布 创建GUI应用程序的工具包

PyQt 4.8.5这是一个小的错误修正版. PyQt是一个创建GUI应用程序的工具包.它是Python编程语言和Qt库的成功融合.Qt库是这个星球上最强大的库之一,在更强大库出现之前.PyQt是由http://www.aliyun.com/zixun/aggregation/29869.html">Phil Thompson 开发. PyQt实现了一个Python模块集.它有超过300类,将近6000个函数和方法.它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Win

PyQt v4.8.3发布 创建GUI应用程序的工具包

PyQt是一个创建GUI应用程序的工具包.它是Python编程语言和Qt库的成功融合.Qt库是这个星球上最强大的库之一,在更强大库出现之前.PyQt是由http://www.aliyun.com/zixun/aggregation/29869.html">Phil Thompson 开发. PyQt实现了一个Python模块集.它有超过300类,将近6000个函数和方法.它是一个多平台的工具包,可以运行在所有主要操作系统上,包括UNIX,Windows和Mac. PyQt采用双许可证,开发

创建窗口和程序片

在Java 1.0中,图形用户接口(GUI)库最初的设计目标是让程序员构建一个通用的GUI,使其在所有平台上都能正常显示. 但遗憾的是,这个目标并未达到.事实上,Java 1.0版的"抽象Windows工具包"(AWT)产生的是在各系统看来都同样欠佳的图形用户接口.除此之外,它还限制我们只能使用四种字体,并且不能访问操作系统中现有的高级GUI元素.同时,Jave1.0版的AWT编程模型也不是面向对象的,极不成熟.这类情况在Java1.1版的AWT事件模型中得到了很好的改进,例如:更加清

win32-关于 visual studio 2010 创建 windows 应用程序问题

问题描述 关于 visual studio 2010 创建 windows 应用程序问题 想用2010创建 windows 应用程序,选项 是否生成文件清单 改成否也不行.总是出现 1>------ 已启动全部重新生成: 项目: Ex1-03, 配置: Debug Win32 ------ 1>生成启动时间为 2015/7/4 22:47:32. 1>_PrepareForClean: 1> 正在删除文件"DebugEx1-03.lastbuildstate".

多层数据库开发三:创建多层应用程序

                                              第三章 创建多层应用程序 一个多层的Client/Server应用程序在逻辑上划分为几个部分,分别在不同的机器上运行,这些机器既可以在一个局域网内,也可以在Internet上.多层体系结构最大的优势可以概括为两点,一是集中化的商业逻辑,另一个是客户程序可以做得很"瘦". 目前较常见的是三层的体系结构,其中,最关键的是应用服务器,它在三层体系结构中起了承上启下的作用,所以,应用服务器又叫Data

Asp.Net下通过切换CSS换皮肤

asp.net|css 换皮肤的方式有很多种,最简单的通常就是切换页面CSS,而CSS通常写在外部CSS文件里.那么切换css其实就是更换html里的link href路径.我在网上搜索了下.一般有两种方式: 1,在页面放一个holder控件.然后用编程方式把当前用户的风格css link写入页面. 2,通过反射机制,逐个控件设置css样式. 上面两种方式都挺麻烦的, 第一种需要在每个页面上放一个holder控件.类似的做法还有把link标签加runat=server的做法.页面多了,都比较麻烦

利用数据绑定和模板创建Atlas应用程序

程序|创建|模板|数据 一. 简介 本文将向你展示如何使用微软新的Web开发技术(代码名为Atlas)来实现数据绑定和模板.如果你已经理解什么是Atlas,其主要设计目的及其主要组件,那么你在阅读本文时将最大程度地受益. 本文将向你展示: · 把一个客户端listView控件绑定到一个dataSource控件. · 使用模板显示数据. 前提 为了完成本文中的示例程序,你需要具备下列条件: · Microsoft Visual Studio 2005和.NET Framework 2.0.有关下载