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++
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;
|
|
}
|