您的位置:首页 > 其它

使用SkinMagic Toolkit美化界面(II)

2005-10-15 10:10 411 查看
使用SkinMagic Toolkit美化界面(II

by mythma

每个人都希望自己的程序看起来漂亮些,一切都自己来做显得不太现实,选择一个成熟的第三方界面库是一条快速的捷径。关于界面美化的第三方程序库也有很多,如BCGControlBar、XTP、SkinMagic等。对于新手而言,能快速上手的程序库是首选。在众多的界面程序库中, SkinMagic是最容易上手,最容易使用的。本文介绍了如何建立一个简单的SkinMagic程序以及几个基本的SkinMagic API,当然,仅仅是作为入门之用 J。

开发平台:VC6 + SkinMagic2.21

示例代码+SkinMagic下载

l 准备工作

1、下载SkinMagic Toolkit,复制SkinMagicTrial.dll、SkinMagicTrial.lib、SkinMagicLib.h以及皮肤文件corona.smf至项目的目录下。(这样比较简单J,可以在这下载。)

2、在stdafx.h中加入头文件和库的引用,如下:

#include "SkinMagicLib.h"

#pragma comment(lib, "SkinMagicTrial.lib")

l 使用SkinMagic

1、 初始化SkinMagic库:

int __stdcall InitSkinMagicLib( HINSTANCE hInstance,

LPCTSTR lpApplication ,

LPCTSTR lpReserved1,

LPCTSTR lpReserved2 );

在 CxxxApp::InitInstance()中加入初始化SkinMagic库的代码:

VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));

2、调入皮肤文件:

皮肤的调用有两种方法,一是直接从皮肤文件中调用,另一种方法是从资源文件中调用,分别说明如下:

1) 从皮肤文件中调用皮肤:

int __stdcall LoadSkinFile( LPCTSTR lpSkinFile );

2)从资源文件中调用皮肤:

int __stdcall LoadSkinFromResource(HMODULE hModule,

  LPCTSTR lpSkinName ,

LPCTSTR lpType);

现在CxxxApp::InitInstance()中的代码如下:

BOOL CxxxApp::InitInstance()

{

VERIFY( 1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL));

VERIFY( 1 == LoadSkinFile("corona.smf"));

AfxEnableControlContainer();

//…..下略

}

3、将皮肤应用到程序上

int __stdcall SetWindowSkin( HWND hWnd , LPCTSTR lpSkinName );

 int __stdcall SetDialogSkin( LPCTSTR szSkinName );

1)对话框程序代码位置:

BOOL CxxxApp::InitInstance()

{

//...上略

m_pMainWnd = &dlg;

VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));

VERIFY( 1 == SetDialogSkin( "Dialog" ) );

int nResponse = dlg.DoModal();

//…下略

}

2)文档视图程序代码的位置

BOOL CxxxApp::InitInstance()

{

//…上略

m_pMainWnd->ShowWindow(SW_SHOW);

m_pMainWnd->UpdateWindow();

VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , "MainFrame" ));

VERIFY( 1 == SetDialogSkin( "Dialog" ) );

return TRUE;

}

4、释放SkinMagic资源

void __stdcall ExitSkinMagicLib();

重载应用程序的ExitInstance()函数,添加如下代码:

int CxxxApp::ExitInstance()

{

ExitSkinMagicLib();

return CWinApp::ExitInstance();

}

l 结论

经过简短的4步,程序就换上了新装。我没有骗你吧!如果还有什么疑问,可以联系我mythma@163.comJ。

l 参考资料

使用SkinMagic Toolkit美化界面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: