////////////////////////////////////////////////////////////////////////////// //文件 MTextParse.h //主要功能: // 多行文本分析器 // //程序编写: 2008-05-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include ".\pointnamebase.h" #include "rect8ex.h" class CMTextParse { public: CMTextParse(void); virtual ~CMTextParse(void); int ParseString(CString txt); void Clear(void); class COneText { public: COneText(void); void operator =(COneText &ot); void CloneFont(COneText& ot); void GetText(void* pText); //CText *pText CString GetFormatString(COneText* pPrevText = NULL); int GetWordSize(void); //获得字个数,包括汉字 LOGFONT m_font; CSize8 m_size; COLORREF m_color; bool m_bEnter; //回车 bool m_bSuperscript;//上标 bool m_bSubscript; //下标 CString m_strSuperscript; CString m_strSubscript; CString m_string; }; virtual void ScaleProperty(double sx, double sy); void operator =(CMTextParse &tp); int GetLength(void); int GetLineCount(void); CString GetFormatString(void); CList m_textList; protected: int m_nCurIndex; CString m_string; int ParseOne(COneText* pText); CString GetOneString(bool *pEnter = NULL); }; class CMText : public CPointNameBase { public: CMText(void); virtual ~CMText(void); virtual int Read(CFile& fr, const short& ver); virtual void Write(CFile& fw, const short& ver); void Serialize(CArchive& ar, const short &ver) override; virtual void Clear(void); virtual CString GetName(void); virtual int SetName(LPCTSTR lpString); virtual void GetRange(CRect8& range); virtual int IsInRange(CRect8& range); virtual void ScaleProperty(double sx, double sy); virtual void Calibrate(int type, void* pValue); void operator=(CMText& mt); DWORD m_nFlags; //仅为了扩展 CMTextParse m_parse; };