#ifndef __DBPROMPTMARK_H #define __DBPROMPTMARK_H //#include "DbEntity.h" #define PMF_DRAW_TEXT 0x01 class TARCH_EXP TDbPromptMark: public TDbEntity /*, public XRectAngle*/ { DECLARE_TENTBASE(); public: enum ShapeFlag { kRectCrossing=0, kCircle=1, kRect=2, kTriangle=3, kCrossing=4, kItericCrossing=5, //斜叉 kCircleCrossing=6, //园叉 kCircleICrossing=7, //圆斜叉 }; protected: XString m_sPrompt; const static Adesk::UInt8 g_nVersion; Adesk::UInt32 m_nControlFlag; //控制标记,保留备用 ShapeFlag m_shape; AcDbHardPointerId m_idTextStyle; XPoint m_ptLocation; double m_xSize, m_ySize; double m_nRotation; //TArch7 Adesk::UInt16 m_colorText;//文字颜色 public: void SetLocation(XPoint pt); void SetSizeX(double x); void SetSizeY(double y); void SetRotation(double nRot); void SetPrompt(const TCHAR *pszMsg); void SetShape(TDbPromptMark::ShapeFlag sp); void SetTextStyle(AcDbObjectId id); void SetDrawText(BOOL bTrue); BOOL GetDrawText() const; const TCHAR *GetPrompt() const { return (const TCHAR *)m_sPrompt; } TDbPromptMark::ShapeFlag GetShape() const; AcDbObjectId GetTextStyle() const; XPoint GetLocation() const { return m_ptLocation;} double GetSizeX() const { return m_xSize; } double GetSizeY() const { return m_ySize; } double GetRotation() const { return m_nRotation; } //void GetPolyline(AcDbPolyline &pline) const; int CompareTo(const TDbPromptMark &src) const; public: TDbPromptMark(); TDbPromptMark(const XPoint &pt1, const XPoint &pt2, const TCHAR *pszMsg); ~TDbPromptMark(); virtual void CopyPropertiesFrom(AcDbEntity *pSrcEntity, unsigned gMatchFlag); ACRX_DECLARE_MEMBERS(TDbPromptMark); // Overriden function from AcDbEntity 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 subGetGripPoints(AcGePoint3dArray& gripPoints, AcDbIntArray& osnapModes, AcDbIntArray& geomIds) const; virtual Acad::ErrorStatus subGetStretchPoints(AcGePoint3dArray & stretchPoints) const; virtual Acad::ErrorStatus subMoveGripPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subMoveStretchPointsAt(const AcDbIntArray& indices, const AcGeVector3d& offset); virtual Acad::ErrorStatus subTransformBy(const AcGeMatrix3d& xform); // drived from TDbEntity virtual Acad::ErrorStatus ExplodeOrDraw2d(XExplodeDraw &dc) const; virtual DrawType GetDrawType() const { return TEntityBase::k2DOnly; } virtual void GetTips(DList &) const; //取动态属性显示数据 virtual Acad::ErrorStatus GetGripText(int i, CString &cs) const; virtual const TCHAR * GetDefaultLayer() const; virtual int ConvertText(TConvertTextPtr ptr, void *pData=NULL); virtual void SetSubText(long i,CString sText){SetPrompt(sText);}//ok }; #endif