QTextObj.h
资源名称:QGIS.rar [点击查看]
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:3k
源码类别:
GDI/图象编程
开发平台:
Visual C++
- #ifndef QGIS_OBJ_TEXT_DEFINE
- #define QGIS_OBJ_TEXT_DEFINE
- class CBoundaryRect;
- class CQCoordSys;
- #include "QBaseObj.h"
- /////////////////////////////////////////////////////////////////////
- //// QGIS_Class_Mark_Begin
- // 类名: CQTextObj
- // 基类: CQBaseObj
- // 作者: 祁强
- // 描述: 文本标注类
- // 创建日期: 2007-1-3
- // 修改:
- // 参考文献: Geo2dObjLabel
- class AFX_EXT_CLASS CQTextObj : public CQBaseObj
- //// QGIS_Class_Mark_End
- {
- public:
- CQTextObj();
- CQTextObj(const CQTextObj & Text);
- void Copy(const CQTextObj & Text);
- CQTextObj & operator=(const CQTextObj & Text);
- virtual ~CQTextObj();
- public:
- //基类纯虚函数重载
- virtual void Serialize(CArchive& ar);
- virtual void Move(double dx,double dy);
- virtual void Rotate(CQPoint & pt,double & fAngleDegree);
- virtual void GetBoundingRect(CBoundaryRect * pRect);
- virtual void CalculateBoundary(CBoundaryRect * pRect = 0);//计算图元的边界矩形
- virtual BOOL Select(CQCoordSys * pSys,CQPoint & pt, double fEffectDistance); //点选
- virtual BOOL Select(CQCoordSys * pSys,CBoundaryRect & rect); //框选
- virtual void Display(CQCoordSys * pSys,CDC * pDC,int nDrawMode,int nSpecialMode,COLORREF * pColor);
- // 所有图元x坐标的按照中心点x坐标和缩放倍数缩放,dFlex>1会放大,dFlex<1会缩小
- virtual void XFlex(double dcp_x,double dFlex);
- // 所有图元y坐标的按照中心点y坐标和缩放倍数缩放,dFlex>1会放大,dFlex<1会缩小
- virtual void YFlex(double dcp_x,double dFlex);
- virtual void WriteToFile(CFile * pFile);
- virtual void ReadFromFile(CFile * pFile);
- virtual CString VarToStr(); //将图元的值转换为字符串格式
- public:
- //标注类别的相关操作
- inline void SetText(const char * sz); //c_str格式的标住内容设置
- inline void SetText(CString szText); //设置标住内容
- inline CString GetText() const; //获取标住内容
- inline void SetHeight(float fHeight); //设置标住高
- inline float GetHeight() const; //获取标住高
- inline void SetWidth(float fWidth); //设置标住宽
- inline float GetWidth() const; //设置标住宽
- inline void SetOffWidth(float fOffWidth); //设置标住间距
- inline float GetOffWidth() const;//获取标住间距
- inline void SetFont(LOGFONT lfont);
- inline LOGFONT GetFont() const;
- inline void SetPos(CQPoint pt);
- inline CQPoint GetPos() const;
- inline void SetTextAngle(float fTextAngle);
- inline float GetTextAngle() const;
- inline void SetFontAngle(float fFontAngle);
- inline float GetFontAngle() const;
- inline void SetRowOffSet(float fRowOffSet);
- inline float GetRowOffSet() const;
- void SetRowWidth(double dw,CQCoordSys * pSys = NULL);
- void SetFontSize(double dFontSize);
- int GetTextCount() const; //获取文本中字符的个数
- int GetTextRowCount() const; //获取文本中字符行的个数
- private:
- CString m_szText; //内部字符串对象
- float m_fTextHeight; //字高
- float m_fTextWidth; //字宽
- float m_fOffWidth; //字间距
- LOGFONT m_lfFont; //字体
- CQPoint m_ptLabel; //标住的定位点坐标
- float m_fTextAngle; //文本的旋转角度
- float m_fFontAngle; //字体的角度
- float m_fRowOffSet; //文本的行间距离
- CBoundaryRect m_Boundary; //文本的边界矩形对象
- };
- #endif