You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
3.1 KiB
C++

//////////////////////////////////////////////////////////////////////////////
//文件 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;
}