VS2010中SkinMagic 用法

新建MFC工程的時候,一定要取消unicode選項

1copy   SkinMagicLib.h    SkinMagic.dll    SkinMagic.lib     corona.smf

到工程目錄


一定要鏈接到項目中去    項目-----屬性 ----輸入------附加庫中輸入  SkinMagic.lib

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

  #include "SkinMagicLib.h"

3初始化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();

  }

發佈了8 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章