📄 baseskin.h
字号:
// BaseSkin.h文件
#ifndef __BASESKIN_H__
#define __BASESKIN_H__
#include <windows.h>
class CBaseSkin
{
public:
typedef int (__stdcall *PFNINITSKINMAGICLIB)(HINSTANCE, LPCTSTR, LPCTSTR, LPCTSTR);
typedef int (__stdcall *PFNLOADSKINFILE)(LPCTSTR);
typedef void (__stdcall *PFNEXITSKINMAGICLIB)();
typedef int (__stdcall *PFNSETDIALOGSKIN)(LPCTSTR);
typedef int (__stdcall *PFNSETWINDOWSKIN)(HWND, LPCTSTR);
typedef int (__stdcall *PFNREMOVEWINDOWSKIN)(HWND);
public:
CBaseSkin(LPCTSTR pszDllPath)
{
m_bValid = FALSE;
m_hDll = NULL;
Init(pszDllPath);
}
~CBaseSkin() { if(m_bValid) ::FreeLibrary(m_hDll); }
BOOL Init(LPCTSTR pszDllPath);
BOOL IsValid() { return m_bValid; }
// we call these functions
int InitSkinMagicLib(HINSTANCE hInstance,
LPCTSTR lpApplication = NULL, LPCTSTR lpReserved1 = NULL, LPCTSTR lpReserved2 = NULL)
{
if(m_pfnInitSkinMagicLib == NULL)
return -1;
return m_pfnInitSkinMagicLib(hInstance, lpApplication, lpReserved1, lpReserved2);
}
int LoadSkinFile(LPCTSTR pszSkinFile)
{
if(m_pfnLoadSkinFile == NULL)
return -1;
return m_pfnLoadSkinFile(pszSkinFile);
}
int SetDialogSkin(LPCTSTR pszSkinName)
{
if(m_pfnSetDialogSkin == NULL)
return -1;
return m_pfnSetDialogSkin(pszSkinName);
}
int SetWindowSkin(HWND hWnd , LPCTSTR lpSkinName)
{
if(m_pfnSetWindowSkin == NULL)
return -1;
return m_pfnSetWindowSkin(hWnd, lpSkinName);
}
int RemoveWindowSkin(HWND hWnd)
{
if(m_pfnRemoveWindowSkin == NULL)
return -1;
return m_pfnRemoveWindowSkin(hWnd);
}
void ExitSkinMagicLib()
{
if(m_pfnExitSkinMagicLib == NULL)
return;
m_pfnExitSkinMagicLib();
}
private:
HMODULE m_hDll;
BOOL m_bValid;
PFNINITSKINMAGICLIB m_pfnInitSkinMagicLib;
PFNLOADSKINFILE m_pfnLoadSkinFile;
PFNSETDIALOGSKIN m_pfnSetDialogSkin;
PFNEXITSKINMAGICLIB m_pfnExitSkinMagicLib;
PFNSETWINDOWSKIN m_pfnSetWindowSkin;
PFNREMOVEWINDOWSKIN m_pfnRemoveWindowSkin;
};
///////////////////////////////////////////////
__inline BOOL CBaseSkin::Init(LPCTSTR pszDllPath)
{
if(m_bValid && m_hDll != NULL)
return TRUE;
m_hDll = ::LoadLibrary(pszDllPath);
if(m_hDll != NULL)
{
m_pfnInitSkinMagicLib =
(PFNINITSKINMAGICLIB)::GetProcAddress(m_hDll, "InitSkinMagicLib");
m_pfnLoadSkinFile =
(PFNLOADSKINFILE)::GetProcAddress(m_hDll, "LoadSkinFile");
m_pfnSetDialogSkin =
(PFNSETDIALOGSKIN)::GetProcAddress(m_hDll, "SetDialogSkin");
m_pfnExitSkinMagicLib =
(PFNEXITSKINMAGICLIB)::GetProcAddress(m_hDll, "ExitSkinMagicLib");
m_pfnSetWindowSkin =
(PFNSETWINDOWSKIN)::GetProcAddress(m_hDll, "SetWindowSkin");
m_pfnRemoveWindowSkin =
(PFNREMOVEWINDOWSKIN)::GetProcAddress(m_hDll, "RemoveWindowSkin");
if(m_pfnInitSkinMagicLib != NULL && m_pfnLoadSkinFile != NULL &&
m_pfnSetDialogSkin != NULL && m_pfnExitSkinMagicLib != NULL)
{
m_bValid = TRUE;
}
}
return m_bValid;
}
#endif // __BASESKIN_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -