使用AppFace For VC 0.2给软件更换皮肤
1、 下载
AppFace for VC 开发包,要用到其中的三个文件: "appface.h", "appface.dll" ,"gtclassic.urf"
。
2、 创建一个 VC 可执行文件工程, MDI/SDI/DIALOG/WIN32 类型的都可以,我以创建一个DIALOG 工程 ResSkin 进行说明 。将"appface.h" 拷贝到该工程目录下,将"Appface.dll"拷贝到该工程的输出目录下,例如:"debug/",将"gtclassic.urf"拷贝到资源所在目录下 。在VC 的项目管理器中进入资源管理项,在右键菜单中选择"Import",将"gtclassic.urf"添加进工程,资源类型设定为: "MYTYPE",资源ID设定为"IDR_MY_URF"。注意:资源ID 前面一定要加双引号 。
准备工作全部完成了
,现在进入正题:
1、在
ResSkin.cpp 中加入: #include "appface.h"
2、在
CResSkinApp::InitInstance() 成员函数中添加如下代码
CResSkinApp::InitInstance()
{
...
CAppFace af ; //line 1
//line 2
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;
CResSkinDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
...
af.Remove() ; //line 3
}
编译后就可以看到效果了
3
、添加“换皮肤“按钮
添加一个
Button,消息响应函数如下:
void CChatDlg::OnButton2()
{
x++; //全局变量,static int x=3;
int x1;
x1=x%3;
if(x1==1)
{
CAppFace af ;
af.Start(_T("IDR_MY_URF1"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;
this->MoveWindow(81,75,870,602);
}
if(x1==2)
{
CAppFace af ;
af.Start(_T("IDR_MY_URF2"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;
this->MoveWindow(81,75,854,595);
}
if(x1==0)
{
CAppFace af ;
af.Start(_T("IDR_MY_URF"),GTP_LOAD_RESOURCE,NULL,_T("MYTYPE"),NULL) ;
this->MoveWindow(81,75,865,602);
}
}
效果图如下:
注意:如果您下载不到这个开发包,请留下邮箱,我会发到您的邮箱。