VC_SkinMagic使用方法总结

 一直以来总想为自己用VC6做的程序美容一下,于是便找到这款skinmagic,虽然网上有许多关于此软件的使用说明,但实际使用过程中总会遇到一些问题,经过反复摸索和总结,于是便有了此文,希望对您有所帮助。 
使用步骤:
另附自己找到的builder2.3版本
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"
 
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();

你可能感兴趣的:(null,mfc,dll,dialog,generation)