#pragma once #include "SkinUI.h" struct tagString { UINT uID; UINT uFontIndex; COLORREF colStatic; tagPositionData *pPositionData; CString strText; UINT uFormat; bool bVisible; }; struct tagImage { tagPositionData *pPositionData; UINT uID; CImageEx *pImage; BYTE cbAlpha; DWORD dwMask; int nType; int nRotation; bool bGray; bool bVisible; }; ////////////////////////////////////////////////////////////////////////// class SKINUI_CLASS CBuildDialog { friend class CXmlManager; friend class ISkinControl; protected: HWND m_hOwnWnd; CXmlManager *m_pXml; public: vector m_ControlArray; vector m_StringArray; vector m_ImageArray; //窗口变量 public: CSize m_szWindowSize; //窗口大小 CSize m_szRcSize; //圆角大小 CSize m_szMinSize; //最小尺寸 CSize m_szMaxSize; //最大尺寸 bool m_bExtrude; //是否可以拉伸 bool m_bClip; COLORREF m_colBK; bool m_bDefaultSkin; public: CBuildDialog(void); virtual ~CBuildDialog(void); public: //设置句柄 inline void SetOwnHwnd(HWND hWnd){ m_hOwnWnd = hWnd; } //解析窗口 bool ParseWindow(LPCTSTR lpszFileName); //解析控件 bool ParseControl(CWnd* pParentWnd); //解析图形 bool ParseGraphics(); //默认皮肤 void SetDefaultSkin(bool bDefault){ m_bDefaultSkin = bDefault; } //String函数 public: int AddString(LPCTSTR lpszText,UINT uFontIndex,UINT uFormat,COLORREF col,bool bVisible,tagPositionData *pPositionData,UINT uID); tagPositionData *GetStringRect(UINT uID); tagString *GetString(UINT uID); //Image函数 public: int AddImage(LPCTSTR lpszFileName,BYTE dwAlpha,DWORD dwMask,int nType,int nRotation,bool bGray,bool bVisible,tagPositionData *pPositionData,UINT uID); tagPositionData *GetImageRect(UINT uID); tagImage *GetImage(UINT uID); //绘制函数 public: //绘制文字 void DrawString(CDC*pDC); //绘制图像 void DrawImage(CDC*pDC); public: //用户自定义控件 virtual bool CreateUserControl(){ return false; } };