使用SkinMagic Toolkit美化界面(II)

本文介绍使用SkinMagic Toolkit美化界面的方法。对于新手而言,SkinMagic是容易上手和使用的第三方界面库。文章给出开发平台,详细阐述准备工作、使用SkinMagic的步骤,包括初始化库、调入皮肤文件、应用皮肤到程序及释放资源,经4步可完成界面美化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SkinMagic Toolkit美化界面(II

by mythma

 

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

       开发平台:VC6 + SkinMagic2.21

示例代码+SkinMagic下载

l       准备工作

1、下载SkinMagic Toolkit,复制SkinMagicTrial.dllSkinMagicTrial.libSkinMagicLib.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美化界面

转载于:https://www.cnblogs.com/wuwuwu/archive/2005/10/15/6335224.html

SkinMagicToolkit 一:文件说明 SkinMagicLib.h 必须的头文件,请添加到工程中。 SkinMagic.lib + SkinMagic.dll 动态链接库配套使用 编译时需要在工程中添加SkinMagic.dll,程序运行时需要SkinMagic.dll 以下版本的编译出来的程序运行时不再依赖SkinMagic.dll SkinMagicLibMD6.lib 静态链接库,用于VC6的Release版编译 SkinMagicLibMT6.lib 静态链接库,用于VC6的Debug版编译 二:使用步骤 1。把SkinMagicLib.h, SkinMagicLibMT6.lib, SkinMagicLibMD6.lib放到你的VC6工程目录下 2。在StdAfx.h中添加 #include "SkinMagicLib.h" 3。在工程设置中添加对应的库 Win32 Release中填上SkinMagicLibMD6.lib Win32 Debug中填上SkinMagicLibMT6.lib 4。在InitInstance()函数的开始处添加初始化SkinMagic资源的代码。 VERIFY(1 == InitSkinMagicLib(AfxGetInstanceHandle(), NULL, NULL, NULL)); 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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值