RenderManager.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef RENDER_HEAD_FILE
  2. #define RENDER_HEAD_FILE
  3. #pragma once
  4. #include <map>
  5. #include <vector>
  6. using namespace std;
  7. class CImageEx;
  8. //资源结构
  9. struct tagImageInfo
  10. {
  11. CImageEx *pImage;
  12. int nRef;
  13. };
  14. //////////////////////////////////////////////////////////////////////////
  15. class CRenderManager
  16. {
  17. protected:
  18. HFONT m_hDefaultFont; //默认字体
  19. HINSTANCE m_hResInstance; //资源句柄
  20. map<LPCTSTR,tagImageInfo*> m_ArrayImage; //图片数组
  21. vector<HFONT> m_ArrayFont; //字体管理
  22. public:
  23. CRenderManager(void);
  24. ~CRenderManager(void);
  25. //创建单例
  26. public:
  27. static CRenderManager*GetInstance();
  28. //获取函数
  29. public:
  30. HFONT GetDeaultFont(){return m_hDefaultFont;}
  31. public:
  32. //进程目录
  33. bool GetWorkDirectory(TCHAR szWorkDirectory[], WORD wBufferCount);
  34. //默认字体
  35. void SetDefaultFont(LPCTSTR pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic);
  36. //资源句柄
  37. void SetResInstance(HINSTANCE hInstance){m_hResInstance = hInstance;}
  38. public:
  39. //
  40. void AddFont(LPCTSTR pStrFontName, int nSize, bool bBold=false, bool bUnderline=false, bool bItalic=false);
  41. //
  42. HFONT GetFont(int nIndex);
  43. //
  44. HFONT GetEndFont();
  45. //图片管理
  46. public:
  47. //获取图片
  48. CImageEx *GetImage(LPCTSTR lpszFileName,LPCTSTR lpszResType=NULL);
  49. //删除图片
  50. void RemoveImage(CImageEx *&pImage);
  51. //删除所有
  52. void ClearImage();
  53. //绘画函数
  54. public:
  55. //区域色块
  56. void DrawColor(HDC hDC, const RECT& rc, COLORREF color);
  57. //渐变色块
  58. void DrawGradient(HDC hDC, const RECT& rc, DWORD dwFirst, DWORD dwSecond, bool bVertical, int nSteps);
  59. //绘制线条
  60. void DrawLine(HDC hDC, const RECT& rc, int nSize, COLORREF dwPenColor,int nStyle = PS_SOLID);
  61. //绘制矩形
  62. void DrawRect(HDC hDC, const RECT& rc, int nSize, COLORREF dwPenColor);
  63. //圆角矩形
  64. void DrawRoundRect(HDC hDC, const RECT& rc, int width, int height, int nSize, COLORREF dwPenColor);
  65. //文字尺寸
  66. SIZE GetTextSize(HDC hDC, LPCTSTR pstrText, HFONT hFont, UINT uStyle);
  67. };
  68. #define RenderEngine CRenderManager::GetInstance()
  69. #endif