XSpot.h
上传用户:yokoluohf
上传日期:2013-02-25
资源大小:769k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. #pragma once
  2. #include <Gdiplus.h>
  3. using namespace Gdiplus;
  4. #include <map>
  5. using namespace std;
  6. class XTube;
  7. enum SpotTypeEnum
  8. {
  9. STE_NULL,
  10. STE_LEFT,
  11. STE_RIGHT,
  12. STE_CIRCLE,
  13. STE_SMALL_CIRCLE,
  14. STE_MEDIUM_CIRCLE,
  15. STE_LARGE_CIRCLE, //大圆
  16. STE_START,
  17. STE_END,
  18. STE_INNER, //
  19. STE_OUTER, //
  20. STE_AUTO,
  21. };
  22. enum IconTypeEnum
  23. {
  24. ITE_NULL, 
  25. };
  26. class XSpot
  27. {
  28. friend class XTube;
  29. private:
  30. XTube* parent;
  31. protected:
  32. PointF position; //位置
  33. SpotTypeEnum type;
  34. CString name;
  35. CString title;
  36. CString description;
  37. IconTypeEnum icon;
  38. Color color;
  39. Color fontColor;
  40. CString fontFace;
  41. REAL fontHeight;
  42. int fontStyle;
  43. protected:
  44. //<<
  45. PointF left;
  46. PointF right;
  47. PointF center;
  48. REAL angle;
  49. REAL startAngle;
  50. REAL sweepAngle;
  51. REAL radius;
  52. //>>
  53. //<<
  54. REAL ANGLE;
  55. PointF A;
  56. PointF B1, B2; //方块的位置
  57. PointF C1, C2; //label的位置
  58. //>>
  59. public:
  60. XSpot (PointF pt = PointF (0.0, 0.0), SpotTypeEnum vType = STE_LEFT, CString vName = "");
  61. XSpot (Point pt, SpotTypeEnum vType = STE_LEFT, CString vName = "");
  62. bool operator == (const XSpot& vSpot);
  63. void SetParent (XTube* vParent);
  64. XTube* GetParent () {return parent;}
  65. void SetType (SpotTypeEnum vType);
  66. SpotTypeEnum GetType () {return type;}
  67. void SetName (CString vName) {name = vName;};
  68. CString GetName () {return name;}
  69. void SetTitle (CString vTitle) {title = vTitle;};
  70. CString GetTitle () {return title;}
  71. void SetDescription (CString vDescription) {description = vDescription;}
  72. CString GetDescription () {return description;}
  73. void SetPosition (PointF vPosition) {position = vPosition;}
  74. PointF GetPosition () {return position;}
  75. void SetColor (Color vColor) {color = vColor;}
  76. Color GetColor () {return color;}
  77. void SetFontColor (Color vFontColor) {fontColor = vFontColor;}
  78. Color GetFontColor () {return fontColor;}
  79. void SetFontFace (CString vFontFace) {fontFace = vFontFace;}
  80. CString GetFontFace () {return fontFace;}
  81. void SetFontHeight (REAL vFontHeight) {fontHeight = vFontHeight;}
  82. REAL GetFontHeight () {return fontHeight;}
  83. void SetFontStyle (int vFontStyle) {fontStyle = vFontStyle;}
  84. int GetFontStyle () {return fontStyle;}
  85. public:
  86. int Move (float x, float y);
  87. int Draw (Graphics* g, map<CString, PointF>* spotMap = NULL);
  88. };