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

以前看到瑞星和金山词霸有换皮肤功能,很是羡慕,自己也想做个换皮肤的程序,但毕竟自己能力有限,以前在此处看到一篇介绍换皮肤功能的文章,但只能应用在对话框程序上。我也试过像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-01 13:35:10

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

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

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

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

皮肤设置选项 颜色:

C++MFC编程笔记day01 MFC介绍、创建MFC程序和重写消息处理

一.MFC概念和作用 1.全称Microsoft Foundation Class Library,我们称为微软基础类库,封闭了绝大部分的win32 Api函数,C++语法中的数据结构,程序的执行流程MFC就是一个库(动态库,静态库)MFC还是一个程序框架 2.为什么使用MFC基于框架编程,提高工作效率,减少开发周期,节约开发成本. 二.几个重要的头文件 afx.h    -绝大部分类的声明头文件 afxwin.h -包含了afx.h和windows.h afxext.h -提供了扩展窗口类的支

接触VC之三:MFC基于对话框程序

最近,本人赶时髦,装上了一套Visual Studio.net,安装要2213M呢,硬盘上三个盘符总共剩下不足2G的地方了.不过,界面相当的漂亮,且功能强大,值得心慰.我终于可以在类视图上,尽情去看类的基类,以及基类的实现代码了.不仅如此,最好的是那附带的MSDN上所有的VC基础文章都是中文,翻译的比希望出版社的好得没的说.什么文档啊,框加窗口啊,多视图啊,应有尽有.所以建议大家都来用.net的吧,注意是要那七张盘的,三张的是beta版,VC功能不全的. 这部分该说一说MFC的具体程序了.因为我

CFindReplaceDialog如何在MFC对话框的程序中使用啊

问题描述 CFindReplaceDialog如何在MFC对话框的程序中使用啊 看了几篇文章代码,都实现不了,有没有谁做过这个功能的介绍下CFindReplaceDialog的详细用法? 解决方案 p_FindReplaceDlg = new CFindReplaceDialog(); p_FindReplaceDlg->Create( true m_FindString NULL FR_DOWN this ); //创建查找对话框 p_FindReplaceDlg->ShowWindow(

mfc-基于MFC对话框的程序中如何打开一个单文档

问题描述 基于MFC对话框的程序中如何打开一个单文档 我是MFC的初学者,现在遇到了一个问题,就是如何在基于对话框的程序中,如何通过一个对话框中的按钮打开一个单文档.(我的目的是想在打开的单文档中绘制折线图),求各位大神指点 解决方案 你干嘛用基于对话框的程序,你完全可以创建一个基于单文档的程序,再添加对话框,这比你先创建一个对话框的程序,再添加文档视图支持简单的多. 解决方案二: 在MFC下使用OpenGL的一个简单的例子(基于单文档程序)MFC应用程序类型:单文档.多文档与基于对话框MFC窗

visual studio-用VS2005新建的MFC智能设备应用程序空白项目,为什么编译会出错?请大神解答

问题描述 用VS2005新建的MFC智能设备应用程序空白项目,为什么编译会出错?请大神解答 1>------ 已启动生成: 项目: 0001, 配置: Debug HPC-3000 (ARMV4I) ------ 1>正在编译... 1>stdafx.cpp 1>C:Program Files (x86)Windows CE Toolswce600HPC-3000includeARMV4Imalloc.h(45) : error C2143: syntax error : miss

winform-在vs2010里面创建C#web应用程序时出错崩溃重启

问题描述 在vs2010里面创建C#web应用程序时出错崩溃重启 只有在C#里面才出错,在VB里面是没问题的.新建其他项目没问题,如winformwpf等没问题. PS.重装了无数次,之前是专业版又换了旗舰版还是不行. 解决方案 检查下电脑是否感染了360等流氓软件,如果重装VS没用,建议重装系统,这是最简单和快速,并且确定100%有效的办法. 解决方案二: 真心不想重装系统,装过好几次了 解决方案三: 重新设置开发环境,在设置选项里设置好

如何利用HTML5与MongoDB创建位置感知Web程序

在日常生活中,我们都离不开位置识别类应用程序.Foursquare.Facebook等应用程序帮助我们和我们的家人朋友分享当前位置(或者正在参观的景点).而像Google Local这样的应用则帮助我们找到当前位置附近有哪些自己需要的服务设施或业务场所.如此,如果我们需要找到一家离自己最近的咖啡厅,完全可以通过Google Local快速获取建议并立刻动身前往.这不仅大大方便了日常生活,还能够帮助企业将自己的产品推销给更理想的受众群体.无论是对消费者还是对企业,这都堪称完美的双赢局面. 要创建这