ThemeUtil.h
上传用户:tang1250
上传日期:2020-10-23
资源大小:86k
文件大小:1k
源码类别:

PropertySheet

开发平台:

Visual C++

  1. #pragma once
  2. /**********************************************************************
  3. **
  4. ** ThemeUtil.h : include file
  5. **
  6. ** by Andrzej Markowski June 2004
  7. **
  8. **********************************************************************/
  9. #include "TmSchema.h"
  10. #define THM_WM_THEMECHANGED     0x031A
  11. typedef struct _MY_MARGINS
  12. {
  13.     int cxLeftWidth;
  14.     int cxRightWidth;
  15.     int cyTopHeight;
  16.     int cyBottomHeight;
  17. } MY_MARGINS;
  18. class CThemeUtil
  19. {
  20. public:
  21. CThemeUtil();
  22. virtual ~CThemeUtil();
  23. BOOL OpenThemeData(HWND hWnd, LPCWSTR pszClassList);
  24. void CloseThemeData();
  25. BOOL DrawThemePart(HDC hdc, int iPartId, int iStateId, const RECT *pRect);
  26. BOOL GetThemeColor(int iPartId, int iStateId, int iPropId, const COLORREF *pColor);
  27. BOOL GetThemeInt(int iPartId, int iStateId, int iPropId, const int *piVal);
  28. BOOL GetThemeMargins(int iPartId, int iStateId, int iPropId, const MY_MARGINS *pMargins);
  29. BOOL GetThemeEnumValue(int iPartId, int iStateId, int iPropId, const int *piVal);
  30. BOOL GetThemeFilename(int iPartId, int iStateId, int iPropId, 
  31. OUT LPWSTR pszThemeFileName, int cchMaxBuffChars);
  32. BOOL GetCurrentThemeName(OUT LPWSTR pszThemeFileName, int cchMaxNameChars, 
  33. OUT OPTIONAL LPWSTR pszColorBuff, int cchMaxColorChars,
  34. OUT OPTIONAL LPWSTR pszSizeBuff, int cchMaxSizeChars);
  35. HBITMAP LoadBitmap(LPWSTR pszBitmapName);
  36. private:
  37. BOOL IsWinXP(void);
  38. void FreeLibrary();
  39. private:
  40. HINSTANCE m_hUxThemeDll;
  41. HINSTANCE m_hRcDll;
  42. UINT m_hTheme;
  43. };