SkinMagic使用方法完美总结

简介: 一直以来总想为自己用VC6做的程序美容一下,于是便找到这款skinmagic,虽然网上有许多关于此软件的使用说明,但实际使用过程中总会遇到一些问题,经过反复摸索和总结,于是便有了此文,希望对您有所帮助。

一直以来总想为自己用VC6做的程序美容一下,于是便找到这款skinmagic,虽然网上有许多关于此软件的使用说明,但实际使用过程中总会遇到一些问题,经过反复摸索和总结,于是便有了此文,希望对您有所帮助。


使用步骤:


1。把SkinMagicLib.h, SkinMagicLibMT6.lib, SkinMagicLibMD6.lib放到你的VC6工程目录下


2。在StdAfx.h中添加


#include "SkinMagicLib.h"


3。在工程设置中添加对应的库


特别注意:


1、   使用dll时,程序发布时需要skinmaigc.dll与程序打包


2、   若使用静态库,则无需依赖dll文件。具体做法是:


前提条件1:在project/settings/general/ 选择了use MFC in a Static Lirary,此时对于debug版本和release版本,都必须使用静态库:SkinMagicLibMT6.lib。


1)   debug版本:Project/Setting的C++ / Code Generation下选择:“Debug Multithreaded”。


2)   release版本:选择:“Multithreaded”


前提条件2:在project/settings/general/ 选择了use MFC in a Shared DLL,此时对于debug版本和release版本都必须使用静态库:SkinMagicLibMD6.lib。


3)   debug版本:Project/Setting的C++ / Code Generation下选择:“Debug Multithreaded DLL”。


4)   release版本:选择:“Multithreaded DLL”


其中的MT代表multithreaded,而MD代表multithreaded DLL,需要在 msdev 的Project/Setting的C++ / Code


Generation标签下选择,如果你的工程要用MT类型的静态库,则debug版要选择"Debug Multithreaded",release


版要选择"Multithreaded";如果要用MD类型的静态库,则debug版需要选择"Debug Multithreaded DLL",release


版要选择"Multithreaded DLL"。


http://www.pediy.com/bbshtml/BBS6/pediy6615.htm

4。在InitInstance()函数的开始处添加初始化SkinMagic资源的代码。

VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" ,
                                                NULL,
                                                NULL ) );
         VERIFY( 1 == LoadSkinFile( "Devior.smf" ));
         VERIFY( 1 == SetDialogSkin( "Dialog" ) );//设置对话框的皮肤


5。在InitInstance()函数中加载皮肤文件并设置程序皮肤。


你可以选择添加皮肤文件到资源中,并编译到程序中。或者程序在运行时动态加载皮肤文件


a. 比如添加corona.smf,设置资源类型为"SKINMAGIC", 资源ID为IDR_SKIN_CORONA


       CBossKeyDlg dlg;
         m_pMainWnd = &dlg;
         //加载SkinMagic皮肤
         VERIFY(1 == LoadSkinFromResource(NULL, (LPSTR)IDR_SKIN_CORONA, "SKINMAGIC"));
         VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));//设置窗口的皮肤
         VERIFY(1 == SetDialogSkin("Dialog"));//设置对话框的皮肤
         int nResponse = dlg.DoModalEx(bStartShow);
         if (nResponse == IDOK)
         {
         }
         else if (nResponse == IDCANCEL)
         {
         }


b. 程序在运行时动态加载皮肤文件


       CBossKeyDlg dlg;
         m_pMainWnd = &dlg;
         //加载SkinMagic皮肤
         VERIFY(1 == LoadSkinFile("corona.smf"));
         VERIFY(1 == SetWindowSkin(m_pMainWnd->m_hWnd, "MainFrame"));
         VERIFY(1 == SetDialogSkin("Dialog"));
         int nResponse = dlg.DoModalEx(bStartShow);
         if (nResponse == IDOK)
         {
         }
         else if (nResponse == IDCANCEL)
         {
         }


6。在ExitInstance()函数中释放SkinMagic资源


 //释放SkinMagic资源:
 ExitSkinMagicLib();


相关文章
|
数据安全/隐私保护
runas的用法
今天同事的电脑安装了一个软件,运行时需要管理员权限,因为是在域环境中,无法提供管理员权限,这种情况可以用到runas。runas命令就是可以在A账户中用B账户运行某个软件。 runas /user:用户名 软件路径 在了解了runas用法后,我先在CMD中输入命令 需要输入账户密码 输入密码成功后就可以运行软件了,检查一下,是以这个用户运行的软件 后来想想运行这个命令每次都要输入管理员密码,这就没什么效果了。
2355 0
|
18天前
ThreadHelper用法
ThreadHelper用法
7 0
|
8月前
|
测试技术 API
harfbuzz 的用法
HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字体,正确排序和定位,以及任何 应用的可选字体功能。hb_shape()
219 0
|
存储 API 索引
CImageList用法介绍
CImageList用法介绍
129 0
$.each()的用法
$.each()的用法
197 0
|
Java
Systrace的用法小结
通过SysTrace可以帮助我们分析性能问题,包含方法的耗时时长、CPU的使用情况、ANR、布局情况等;相比性能工具TraceView,主要用来分析每个方法的执行时间,对于冷启动而言,想抓trace只能通过代码的方式,这样会导致整个应用比较卡顿,测试出的方法时间,不是真正的执行时间,只能看下时间长短的相对占比。
3430 0
iTween的用法总结
Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1 ...
1610 0
|
JavaScript 前端开发 C#