QTextObj.h
上传用户:oybseng
上传日期:2015-04-27
资源大小:7831k
文件大小:3k
源码类别:

GDI/图象编程

开发平台:

Visual C++

  1. #ifndef QGIS_OBJ_TEXT_DEFINE
  2. #define QGIS_OBJ_TEXT_DEFINE
  3. class CBoundaryRect;
  4. class CQCoordSys;
  5. #include "QBaseObj.h"
  6. /////////////////////////////////////////////////////////////////////
  7. //// QGIS_Class_Mark_Begin
  8. //        类名: CQTextObj
  9. // 基类: CQBaseObj
  10. //    作者: 祁强
  11. //    描述: 文本标注类                   
  12. //    创建日期: 2007-1-3
  13. //    修改:
  14. //    参考文献:  Geo2dObjLabel
  15. class AFX_EXT_CLASS CQTextObj : public CQBaseObj
  16. //// QGIS_Class_Mark_End
  17. {
  18. public:
  19. CQTextObj();
  20. CQTextObj(const CQTextObj & Text);
  21. void Copy(const CQTextObj & Text);
  22. CQTextObj & operator=(const CQTextObj & Text);
  23. virtual ~CQTextObj();
  24. public:
  25. //基类纯虚函数重载
  26. virtual void Serialize(CArchive& ar);
  27. virtual void Move(double dx,double dy);
  28. virtual void Rotate(CQPoint & pt,double & fAngleDegree);
  29. virtual void GetBoundingRect(CBoundaryRect * pRect);
  30. virtual void CalculateBoundary(CBoundaryRect * pRect = 0);//计算图元的边界矩形
  31. virtual BOOL Select(CQCoordSys * pSys,CQPoint & pt, double fEffectDistance); //点选
  32. virtual BOOL Select(CQCoordSys * pSys,CBoundaryRect & rect); //框选
  33. virtual void Display(CQCoordSys * pSys,CDC * pDC,int nDrawMode,int nSpecialMode,COLORREF * pColor);
  34. // 所有图元x坐标的按照中心点x坐标和缩放倍数缩放,dFlex>1会放大,dFlex<1会缩小
  35. virtual void XFlex(double dcp_x,double dFlex);
  36. // 所有图元y坐标的按照中心点y坐标和缩放倍数缩放,dFlex>1会放大,dFlex<1会缩小
  37. virtual void YFlex(double dcp_x,double dFlex);
  38. virtual void WriteToFile(CFile * pFile);
  39. virtual void ReadFromFile(CFile * pFile);
  40. virtual CString  VarToStr();  //将图元的值转换为字符串格式
  41. public:
  42. //标注类别的相关操作
  43. inline void SetText(const char * sz); //c_str格式的标住内容设置
  44. inline void SetText(CString szText); //设置标住内容
  45. inline CString GetText() const; //获取标住内容
  46. inline void SetHeight(float fHeight);  //设置标住高
  47. inline float GetHeight() const; //获取标住高
  48. inline void SetWidth(float fWidth);   //设置标住宽
  49. inline float GetWidth() const;  //设置标住宽
  50. inline void SetOffWidth(float fOffWidth); //设置标住间距
  51. inline float GetOffWidth() const;//获取标住间距
  52. inline void SetFont(LOGFONT lfont);
  53. inline LOGFONT GetFont() const;
  54. inline void SetPos(CQPoint pt);
  55. inline CQPoint GetPos() const;
  56. inline void SetTextAngle(float fTextAngle);
  57. inline float GetTextAngle() const;
  58. inline void SetFontAngle(float fFontAngle);
  59. inline float GetFontAngle() const;
  60. inline void SetRowOffSet(float fRowOffSet);
  61. inline float GetRowOffSet() const;
  62.  
  63. void SetRowWidth(double dw,CQCoordSys * pSys = NULL);
  64. void SetFontSize(double dFontSize);
  65. int GetTextCount() const;    //获取文本中字符的个数
  66. int GetTextRowCount() const; //获取文本中字符行的个数
  67. private:
  68. CString m_szText; //内部字符串对象
  69. float m_fTextHeight; //字高
  70. float m_fTextWidth;  //字宽
  71. float m_fOffWidth;   //字间距
  72. LOGFONT m_lfFont;    //字体
  73. CQPoint m_ptLabel;   //标住的定位点坐标
  74. float m_fTextAngle;  //文本的旋转角度
  75. float m_fFontAngle;  //字体的角度
  76. float m_fRowOffSet;  //文本的行间距离
  77. CBoundaryRect m_Boundary; //文本的边界矩形对象
  78. };
  79. #endif