SKinmagic制作UI

来源:互联网 发布:免费电话软件 编辑:程序博客网 时间:2024/05/22 01:45
使用了SkinMagic2.01设置软件界面的一个单文档程序,就三步:

首先拷贝SkinMagicLib.h、SkinMagic.Lib、SkinMagic.dll和皮肤文件*.smf到工程文件夹下;

第二步,添加代码在APP文件的InitInstance()中添加代码:

[cpp] view plaincopy
  1. VERIFY( 1 == InitSkinMagicLib( AfxGetInstanceHandle(), _T("Demo") , NULL,NULL ) );  
  2. VERIFY( 1 == LoadSkinFile( _T("futuraIII.smf") ) ); //皮肤文件可以换成其他的  
  3.   
  4. VERIFY( 1 == SetWindowSkin( m_pMainWnd->m_hWnd , _T("MainFrame") ));//程序的主框架加载皮肤  
  5. VERIFY( 1 == SetDialogSkin( _T("Dialog")));//程序内的对话框加载皮肤  


还有就是在stdfax .h文件中添加:
[cpp] view plaincopy
  1. #include "SkinMagicLib.h"  
  2. #pragma comment(lib, "SkinMagic.lib")  


第三步,取消VC2005默认使用UNICODE,在项目下拉菜单---属性---配置---常规,字符集选择:未设置选项.

只不过我不知道怎么把这些lib和头文件放在网上,没法让大家下载了。

如果要在程序中切换皮肤,可以使用如下的代码:
[cpp] view plaincopy
  1. TCHAR strExt[]= _T("SkinMagic Files(*.smf)|*.smf||");  
  2. CFileDialog dlg( TRUE, _T("*.smf"), _T("*.smf") , OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT  
  3.               , strExt ,  this );  
  4. if( dlg.DoModal() == IDOK  )  
  5. {  
  6.  LoadSkinFile( (LPCTSTR)(dlg.GetPathName()) );  
  7. }