#pragma once #include "aecdbtext.h" class AecXDbMText : public AecXDbText { public: ACRX_DECLARE_MEMBERS(AecXDbMText); private: const static Adesk::UInt8 g_nVersion; protected: double m_nPageWidth; //段落宽度 double m_nLineSpace; //行间距 public: AecXDbMText(); ~AecXDbMText(); //virtual BOOL IsValid() const; virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); // 返回发现的位置,同时posStart往前移动(以便继续找下一个使用), virtual TextPosition FindSubText(const TCHAR *sSubText, TextPosition &posStart, TextRange *pRange = NULL) const; // 返回下一次查找的开始位置 virtual TextPosition ReplaceSubText(const TextPosition &posRep, const TCHAR *sRepText, TextRange *pRange = NULL); //virtual Acad::ErrorStatus subGetClassID(CLSID* pClsid) const; virtual Acad::ErrorStatus dwgInFields(AcDbDwgFiler*); virtual Acad::ErrorStatus dwgOutFields(AcDbDwgFiler*) const; virtual Acad::ErrorStatus dxfInFields(AcDbDxfFiler*); virtual Acad::ErrorStatus dxfOutFields(AcDbDxfFiler*) const; virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); virtual Acad::ErrorStatus subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); // drived from TDbEntity virtual void GetTips(PtrList &lstInfo) const; //取动态属性显示数据 virtual Acad::ErrorStatus Draw2d(AcGiDraw &dc) const; virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual SubText* HitTestText(ADSGePoint3d pt)const { return NULL; }//ok // Helper Method //BOOL ConvertFrom(const AcDbMText *pText); // 没有考虑转角 virtual ADSGePoint3d GetExtents() const; void GetTextLines(PtrList &lstLines) const; // Properties double GetPageWidth(BOOL bAsPaperUnit = TRUE) const; double GetLineSpace(BOOL bAsPaperUnit = TRUE) const; void SetPageWidth(double nWidth, BOOL bAsPaperUnit = TRUE); void SetLineSpace(double nWidth, BOOL bAsPaperUnit = TRUE); };