使用skinMagic库实现界面换肤

·                     将SkinMagicTrial.lib、SkinMagicTrial.dll和SkinMagicLib.h拷贝到项目根目录下,并在工程中添加;

·                     把Skins文件夹放在项目根目录下;

·                     建立一个MFC单文档项目;

·                     将 #include "SkinMagicLib.h" 拷贝到 StdAfx.h文件中;

·                     在C**App类中打开InitInstance()函数,在函数其开始部分增加

    VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), _T("ReadUI") ,NULL,NULL ) );

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

   

·                     (1)在单文档程序中

·                     在InitInstance()函数最后,但在以下代码之前,

    // The one and only window has been initialized, so show and update it.

    m_pMainWnd->ShowWindow(SW_SHOW);

    m_pMainWnd->UpdateWindow();

    加入如下代码

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

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

(2)在基于对话框的程序中

·                     在InitInstance()函数最后,但在以下代码之前,

    // The one and only window has been initialized, so show and update it.

INT_PTR nResponse = dlg.DoModal();

    加入如下代码

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

    (3)添加按钮或菜单修改界面皮肤

    添加按钮事件的代码如下:

    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()));

    }

    这样通过选定皮肤文件任意修改皮肤。

·                     通过类向导给C**App增加ExitInstance() 函数,内容如下

    ExitSkinMagicLib();

    return CWinApp::ExitInstance();

    编译程序;即可运行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值