SkinGlobals.h
上传用户:weijiexitu
上传日期:2007-01-18
资源大小:54k
文件大小:3k
源码类别:

菜单

开发平台:

WINDOWS

  1. // SkinGlobals.h: interface for the CSkinGlobals class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SKINGLOBALS_H__71878295_0054_4004_AC6D_08F61A5E248F__INCLUDED_)
  5. #define AFX_SKINGLOBALS_H__71878295_0054_4004_AC6D_08F61A5E248F__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "skinglobalsdata.h"
  10. #include <afxtempl.h>
  11. enum
  12. {
  13. SBFONT_MARLETT,
  14. SBFONT_TIP,
  15. SBFONT_MENU,
  16. SBFONT_MESSAGE,
  17. SBFONT_CAPTION,
  18. };
  19. #ifndef NO_SKIN_INI
  20. class CSkinIniGlobalsFile;
  21. #endif
  22. class CSkinGlobals  
  23. {
  24. public:
  25. CSkinGlobals();
  26. virtual ~CSkinGlobals();
  27. #ifndef NO_SKIN_INI
  28. BOOL LoadSkin(const CSkinIniGlobalsFile* pIniFile);
  29. void UnloadSkin() { Reset(); }
  30. #endif
  31. void Reset(); // clears colors and deletes brushes and pens
  32. // fonts
  33. CFont* GetFont(int nFont);
  34. BOOL SetFont(LPCTSTR szFaceName, int nPointSize = 0, int nHeight = 0);
  35. LPCTSTR BaseFontName() { return m_sFontName; }
  36. // controls
  37. CBitmap* GetControlBitmap(int nItem, int nState = 0, COLORREF* pMask = NULL, int nAltItem = -1);
  38. BOOL SetControlBitmap(int nItem, CBitmap bitmap[IM_LAST], COLORREF crMask = -1);
  39. BOOL SetControlBitmap(int nItem, UINT uIDBitmap[IM_LAST], COLORREF crMask = -1);
  40. // colors
  41. void SetColor(int nColor, COLORREF color);
  42. COLORREF GetColor(int nColor);
  43. CBrush* GetColorBrush(int nColor);
  44. CBrush* GetColorBrush(COLORREF color);
  45. CPen* GetColorPen(int nColor, int nWidth = 0);
  46. CPen* GetColorPen(COLORREF color, int nWidth = 0);
  47. // static versions
  48. static COLORREF GetColorSt(int nColor);
  49. static CBrush* GetColorBrushSt(int nColor);
  50. static CBrush* GetColorBrushSt(COLORREF color);
  51. static CPen* GetColorPenSt(int nColor, int nWidth = 0);
  52. static CPen* GetColorPenSt(COLORREF color, int nWidth = 0);
  53. static CFont* GetFontSt(int nFont);
  54. private:
  55. CMap<int, int, COLORREF, COLORREF&> m_mapColors; 
  56. CMap<COLORREF, COLORREF, CBrush*, CBrush*&> m_mapBrushes; 
  57. CMap<COLORREF, COLORREF, CPen*, CPen*&> m_mapPens; 
  58. CFont m_fontMarlett, m_fontMenu, m_fontTip, m_fontMessage, m_fontCaption;
  59. CString m_sFontName;
  60. int m_nFontPointSize, m_nFontHeight;
  61. CMap<int, int, CSkinBitmap*, CSkinBitmap*&> m_mapCtrlBitmaps;
  62. static CPen s_pen;
  63. static CBrush s_brush;
  64. static CFont s_font;
  65. private:
  66. void ResetColors();
  67. void ResetFonts();
  68. void ResetCtrls();
  69. CFont* GetMarlett();
  70. CFont* GetTipFont();
  71. CFont* GetMenuFont();
  72. CFont* GetMessageFont();
  73. CFont* GetCaptionFont();
  74. BOOL CreateFont(CFont* pFont, LOGFONT* pLF);
  75. };
  76. #endif // !defined(AFX_SKINGLOBALm_H__71878295_0054_4004_AC6D_08F61A5E248F__INCLUDED_)