程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> VC++ >> 使用SkinMagic Toolkit美化界面

使用SkinMagic Toolkit美化界面

編輯:VC++

  [准備工作]

  1、將SkinMagicTrial.dll放置在調試目錄

  2、設置庫文件目錄,在項目[連接器]的[附加依賴項]中加入庫SkinMagicTrial.lib

  3、在項目的stdafx.h文件中加入頭文件 #include "SkinMagicLib.h"

  [創建過程]

  1、初始化SkinMagic庫:

  要使用SkinMagic,這一步必不可少。在應用程序類的InitInstance()函數中行加入如下代碼(粗體部分):

  CWinApp::InitInstance();

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

  NULL, NULL ));

  說明:

  int InitSkinMagicLib( //初始化SkinMagic工具庫
  HINSTANCE hInstance, //應用程序句柄
  char* szApplication , //皮膚文件中定義的應用程序名,置為NULL即可
  char* szRegCode, //SkinMagic的使用注冊碼。若無置為NULL
  char* szReserved2 //保留位,為NULL
  );

  2、調入皮膚文件:

  皮膚的調用有兩種方法,一是直接從皮膚文件中調用,另一種方法是從資源文件中調用,分別說明如下:

  1)從皮膚文件中調用皮膚:緊接上句,加入如下代碼

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

  2)從資源文件中調用皮膚:

  VERIFY(1 == LoadSkinFromResource(NULL,"FUTURA","skin"));

  說明:

int LoadSkinFromResource(
  HMODULE hModule, //包含皮膚文件的模塊句柄,若NULL表面在本模塊中
 char* lpSkinName , //皮膚資源的名稱
  char* lpType); //資源的類型

  3、為窗口添加皮膚:

  1)為標准窗口(擁有標題欄、系統菜單、可變大小等特征,比如文檔/視圖結構和有菜單的對話框)添加皮膚,通常用於主窗口。在應用程序類的InitInstance()函數的底部加入如下代碼:

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

  m_pMainWnd->ShowWindow(SW_SHOW);

  m_pMainWnd->UpdateWindow();

  說明:

  int SetWindowSkin(
  HWND hWnd, //要使用皮膚的窗口句柄
  char* lpSkinName //為skinFrameWnd對象指定的名稱
  );

  2)為對話框添加皮膚

  在對話框顯示之前調用,通常在應用程序初始化函數中調用

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

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

  m_pMainWnd->ShowWindow(SW_SHOW);

  m_pMainWnd->UpdateWindow();

  說明:

  int SetDialogSkin(
  char* lpSkinName //為skinFrameWnd對象指定的名稱
  );
  使用該函數後,以後程序創建的對話框都將使用該皮膚,但對話框大小不可變。

  3)為單個對話框窗口添加皮膚,例如在對話框視圖中:重載對話框視圖的創建函數OnCreate,加入如下代碼:

  VERIFY( 1 == SetSingleDialogSkin( m_hWnd, "Dialog" ) );

  EnableWindowScrollbarSkin( m_hWnd , SB_BOTH );

  說明:

  int SetSingleDialogSkin(
  HWND hWnd, //要使用皮膚的窗口句柄
  char* lpSkinName //為skinFrameWnd對象指定的名稱
  );
  int EnableWindowScrollbarSkin( //為滾動條添加皮膚
  HWND hWnd, //要使用皮膚的窗口句柄
  int* fnBar //要使用皮膚的滾動條,SB_BOTH表明是橫豎都是用皮膚
  );

  4、釋放SkinMagic資源
 
  重載應用程序的ExitInstance()函數,添加如下代碼:

  ExitSkinMagicLib();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved