BuildDialog.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #pragma once
  2. #include "SkinUI.h"
  3. struct tagString
  4. {
  5. UINT uID;
  6. UINT uFontIndex;
  7. COLORREF colStatic;
  8. tagPositionData *pPositionData;
  9. CString strText;
  10. UINT uFormat;
  11. bool bVisible;
  12. };
  13. struct tagImage
  14. {
  15. tagPositionData *pPositionData;
  16. UINT uID;
  17. CImageEx *pImage;
  18. BYTE cbAlpha;
  19. DWORD dwMask;
  20. int nType;
  21. int nRotation;
  22. bool bGray;
  23. bool bVisible;
  24. };
  25. //////////////////////////////////////////////////////////////////////////
  26. class SKINUI_CLASS CBuildDialog
  27. {
  28. friend class CXmlManager;
  29. friend class ISkinControl;
  30. protected:
  31. HWND m_hOwnWnd;
  32. CXmlManager *m_pXml;
  33. public:
  34. vector<ISkinControl*> m_ControlArray;
  35. vector<tagString*> m_StringArray;
  36. vector<tagImage*> m_ImageArray;
  37. //窗口变量
  38. public:
  39. CSize m_szWindowSize; //窗口大小
  40. CSize m_szRcSize; //圆角大小
  41. CSize m_szMinSize; //最小尺寸
  42. CSize m_szMaxSize; //最大尺寸
  43. bool m_bExtrude; //是否可以拉伸
  44. bool m_bClip;
  45. COLORREF m_colBK;
  46. bool m_bDefaultSkin;
  47. public:
  48. CBuildDialog(void);
  49. virtual ~CBuildDialog(void);
  50. public:
  51. //设置句柄
  52. inline void SetOwnHwnd(HWND hWnd){ m_hOwnWnd = hWnd; }
  53. //解析窗口
  54. bool ParseWindow(LPCTSTR lpszFileName);
  55. //解析控件
  56. bool ParseControl(CWnd* pParentWnd);
  57. //解析图形
  58. bool ParseGraphics();
  59. //默认皮肤
  60. void SetDefaultSkin(bool bDefault){ m_bDefaultSkin = bDefault; }
  61. //String函数
  62. public:
  63. int AddString(LPCTSTR lpszText,UINT uFontIndex,UINT uFormat,COLORREF col,bool bVisible,tagPositionData *pPositionData,UINT uID);
  64. tagPositionData *GetStringRect(UINT uID);
  65. tagString *GetString(UINT uID);
  66. //Image函数
  67. public:
  68. int AddImage(LPCTSTR lpszFileName,BYTE dwAlpha,DWORD dwMask,int nType,int nRotation,bool bGray,bool bVisible,tagPositionData *pPositionData,UINT uID);
  69. tagPositionData *GetImageRect(UINT uID);
  70. tagImage *GetImage(UINT uID);
  71. //绘制函数
  72. public:
  73. //绘制文字
  74. void DrawString(CDC*pDC);
  75. //绘制图像
  76. void DrawImage(CDC*pDC);
  77. public:
  78. //用户自定义控件
  79. virtual bool CreateUserControl(){ return false; }
  80. };