一直以来总想为自己用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"。 |
4。在InitInstance()函数的开始处添加初始化SkinMagic资源的代码。
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" , |
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资源:标签:总结,SkinMagic,dlg,完美,VERIFY,DLL,release,Multithreaded,debug From: https://blog.51cto.com/u_15942605/6025761
ExitSkinMagicLib();