////////////////////////////////////////////////////////////////////////////// //文件 TextFlags.h //主要功能: // //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once class AFX_EXT_CLASS CTextFlags { public: CTextFlags(void); virtual ~CTextFlags(void); virtual void Serialize(CArchive& ar, const short &ver); virtual int ReadFont (CFile& fr, const short &ver); virtual void WriteFont(CFile& fw, const short &ver); int ReadFontOld(CFile& fr); virtual int ReadFontZ(CFile& fr, const short &ver); virtual void WriteFontZ(CFile& fw, const short &ver); int ReadFontOldZ(CFile& fr); virtual void WriteFontDML(CFile& fw, const short &ver, int nBaseTabNum); virtual void WriteZFontDML(CFile& fw, const short &ver, int nBaseTabNum); virtual void WriteFontPCG(CFile& fw, CSize8& size, const short &ver, int nBaseTabNum); virtual void WriteFontPCG(CFile& fw, CSize8& size, COLORREF color, const short &ver, int nBaseTabNum); void operator=(CTextFlags& text); DWORD GetMode(void); //总的(包括水平对齐、垂直对齐、外框方式) void SetMode(DWORD nMode); DWORD GetModeZ(void); //总的(包括水平对齐、垂直对齐、外框方式) void SetModeZ(DWORD nMode); void SetAlignsH(DWORD nMode); void SetAlignsV(DWORD nMode); void SetFrameMode(DWORD nMode); DWORD GetAlignsH(void); //水平位置 DWORD GetAlignsMult(void); //水平对齐 DWORD GetAlignsV(void); //垂直对齐 DWORD GetFrameMode(void); //外框方式 BOOL IsImmovableSize(void); //是否是固定文字大小 void EnableImmovableSize(BOOL bEnable); //改变固定大小风格 BOOL IsBkColor(void); //是否有背景颜色 void EnableBkColor(BOOL bEnable); //背景颜色 enum TextStyleFlags { //水平对齐方式 alignLeft = 0x00000001, // 居左 alignCenterH = 0x00000002, // 水平居中 alignRight = 0x00000004, // 居右(缺省) alignLeftMult = 0x00010000, // 多行水平左对齐 alignCenterMult = 0x00020000, // 多行水平居中对齐 alignRightMult = 0x00040000, // 多行水平右对齐 alignAllPosition = (alignLeft | alignCenterH | alignRight), alignAllMult = (alignLeftMult| alignCenterMult| alignRightMult), //垂直对齐方式 alignTop = 0x00000008, //居上 alignCenterV = 0x00000010, //垂直居中 alignBottom = 0x00000020, //居下(缺省) alignAllV = (alignTop|alignCenterV|alignBottom), //文字外框方式 frameNull = 0x00000040, //空 frameRect = 0x00000080, //矩形 frameCircle = 0x00000100, //圆 frameEllipse = 0x00000200, //椭圆 frameAll = (frameNull|frameRect|frameCircle|frameEllipse), immovableSize = 0x00000400, //固定文字大小,不随比例改变而改变显示大小 backgroundColor = 0x00000800, //是否有背景颜色 noCanMoveCoor = 0x00001000 //不能移动点类坐标 }; COLORREF bkColor; //背景充填颜色 LOGFONT m_logFont; LOGFONT m_logFontZ; protected: DWORD m_nFlags;//对齐方式及边框 DWORD m_nFlagsZ;//对齐方式及边框 }; AFX_INLINE DWORD CTextFlags::GetMode(void) { return m_nFlags; } AFX_INLINE DWORD CTextFlags::GetModeZ(void) { return m_nFlagsZ; } AFX_INLINE void CTextFlags::SetMode(DWORD nMode) { m_nFlags=nMode; } AFX_INLINE void CTextFlags::SetModeZ(DWORD nMode) { m_nFlagsZ = nMode; }