用SkinMagic怎样给对话框换肤

来源:互联网 发布:淘宝商品名称优化 编辑:程序博客网 时间:2024/04/30 14:02

在对话框程序里使用skinmagic皮肤控件
1
先把skinmagiclib.h文件拷贝入工程目录,
在左边的fileview卡片里面,在Resource files栏目加入SkinMagicLib.lib和DETOURS.lib,这两个文件的路径在哪里无所谓,只要加入就行。可以把它们拷贝入工程的目 录下。还有,可以把smf皮肤文件都拷贝入工程的目录下,方便加载皮肤。
在FileView卡片里面加入SkinMagicLib.h文件,并在stdafx.h中加入#include "SkinMagicLib.h"
2
在C**App类的文件里面找到InitInstance函数
在函数开始部分加入
VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), "Demo" , 
NULL,
NULL ) );//Demo字样可以随意修改
VERIFY( 1 == LoadSkinFile("corona.smf") ); //皮肤文件只要在同一目录下就行。如果没有
//就编译出错
3
按Ctrl+W,看到ClassWizard,再给C**App类加入ExitInstance函数
内容是
ExitSkinMagicLib();//为了退出时清理内存
return CWinApp::ExitInstance();
4
在C**Dlg::OnInitDialog()函数里面
结束部分加入
SetWindowSkin( m_hWnd , "Dialog" );
SetDialogSkin("Dialog");
5
加一个按钮或者菜单,内容是“load skin”
添加按钮点击事件的代码为
char strExt[]= "SkinMagic Files(*.smf)|*.smf||";
CFileDialog dlg( TRUE, "*.smf", "*.smf" , OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
             , strExt , this );
if( dlg.DoModal() == IDOK )
{
LoadSkinFile( (char*)(LPCSTR)(dlg.GetPathName()) );
}

原创粉丝点击