DrawDoc.h
资源名称:基本GIS系统开发.rar [点击查看]
上传用户:yklx818
上传日期:2013-04-13
资源大小:459k
文件大小:6k
源码类别:
GIS编程
开发平台:
Visual C++
- // DrawDoc.h : interface of the CDrawDoc class
- //
- /////////////////////////////////////////////////////////////////////////////
- #if !defined(AFX_DRAWDOC_H__9442AAC2_5173_4ADF_A662_BB95DE02A9A9__INCLUDED_)
- #define AFX_DRAWDOC_H__9442AAC2_5173_4ADF_A662_BB95DE02A9A9__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "Line.h"
- #include "Circle.h"
- #include "Arc.h"
- #include "Text.h"
- #include "Tag.h"
- #include "Pline.h"
- #include "PlineRgn.h"
- #include "LinkNet.h"
- #include "Data.h"
- #include "Data1Set.h"
- /*class CGraphPara
- {
- protected:
- int n_ColorNumbAll;
- int n_LayerNumbAll;
- int n_ColorNumb;
- int n_LayerNumb;
- long * m_ColorList;
- LayerStruct* m_LayerList;
- BOOL b_Delete;
- public:
- CGraphPara()
- {
- n_ColorNumb=500;
- n_LayerNumb=100;
- m_ColorList=new long[n_ColorNumb];
- m_LayerList=new LayerStruct[n_LayerNumb];
- n_ColorNumb=4;
- n_LayerNumb=1;
- m_ColorList[0]=RGB(0,0,0);
- m_ColorList[1]=RGB(255,0,0);
- m_ColorList[2]=RGB(0,255,0);
- m_ColorList[3]=RGB(0,0,255);
- m_LayerList[0].b_Display=1;
- strcpy(m_LayerList[0].m_Name,"Layer 0");
- }
- ~CGraphPara()
- {
- delete m_LayerList;
- delete m_ColorList;
- }
- public:
- COLORREF GetColor(int n);
- BOOL GetDisplayStatue(int n);
- };*/
- typedef struct GraphSelectStruct
- {
- short int Lb;
- int index;
- int id_only;
- }GraphSelectStruct;
- //BOOL IsRectCross(float minx,float miny,float maxx,float maxy);
- //CGraphPara *p_GraphPara;
- class CDrawDoc : public CDocument
- {
- protected: // create from serialization only
- DECLARE_DYNCREATE(CDrawDoc)
- GraphSelectStruct* GraphSelect; //存储选中的图形元素
- int n_GraphSelect; //选中图形元素的数目
- CGraphPara m_GraphPara;
- //为了绘制某个图形元素
- // Attributes
- public:
- CDrawDoc()
- {
- // TODO: add one-time construction code here
- // p_GraphPara=&m_GraphPara;
- m_Index=new int[3000];
- m_MaxScreen=10000;
- m_Screen=new ScreenStruct[m_MaxScreen];
- //以下设置首屏的参数,并将当前屏幕设置为首屏
- m_CurrentScreen=0;
- m_Screen[0].sx=0;
- m_Screen[0].sy=0;
- m_Screen[0].blc=1;
- GraphSelect=new GraphSelectStruct[10000];
- }
- CLine* AddLine(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,float X1,float Y1,float X2,float Y2);
- CCircle* AddCircle(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,float CircleX,float CircleY,float CircleR,BOOL bFill);
- CArc* AddArc(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,float CircleX,float CircleY,float CircleR,float Angle1,float Angle2);
- CText* AddText(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,float StartX,float StartY,float Angle1,float Angle2,float TextHeight,float TextWide,float OffWide,unsigned char TextFont,int TextLong,CString Text);
- CTag* AddTag(short ColorPen,int Layer,float xInsert,float yInsert,float xScale,float yScale,float angle,int only_id,int idBlock);
- CPline* AddPLine(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,int Numble,PointStruct *PointList);
- CPlineRgn* AddPLineRgn(short ColorPen,short ColorBrush,float LineWide,short LineType,short Layer,int id_only,int Numble,PointStruct *PointList,BOOL bTransparent,BOOL bFill);
- CLinkNet* AddNetPoint(float x,float y,float rRadiu,short Layer,int id_only,short ColorPen);
- CDraw * GetGraph(short Lb,int Index);
- void DeleteGraph(short Lb,int Index);
- int GetGraphNumb(short Lb);
- int GetGraphUpperBound(short Lb);
- int GetGraphIndex(short Lb,int ID);
- int GetGraphID(short Lb);
- CLinkNet* AddNetLink(float sID,float eID);
- BOOL GetNetXy(int netID,float *x,float *y,BOOL *bDelete);
- float GetAngle(float xx,float yy,float m_x,float m_y);
- BOOL PointSelect(float x,float y,float j1,float blc,int *Lb,int* index,int* id_only);
- void AddScreen(float StartX,float StartY,float blc);
- //实现显示全图功能
- BOOL GetRect(float *m_Xmin,float *m_Ymin,float *m_Xmax,float *m_Ymax);
- //将选中的元素存储到数组结构中
- BOOL AddSelectList(int Lb,int Index,int id_only);
- //检查所有的图形元素,计算并返回选中的图形元素的参数
- //为了绘制某个图形元素
- void DrawGraph(CDC* pDC,int Lb,int index,int DrawMode,int DrawModel,short BackColor);
- void Draw(CDC* pDC,int m_DrawMode,int m_DrawModel,short BackColor);
- int* m_Index;
- int m_CurrentScreen; //当前屏幕的序号
- int m_MaxScreen; //最多能存储的屏幕数
- ScreenStruct* m_Screen; //记录屏幕参数的结构数组
- CData1Set m_data1;
- // Operations
- public:
- // Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CDrawDoc)
- public:
- virtual BOOL OnNewDocument();
- virtual void Serialize(CArchive& ar);
- //}}AFX_VIRTUAL
- // Implementation
- public:
- virtual ~CDrawDoc();
- #ifdef _DEBUG
- virtual void AssertValid() const;
- virtual void Dump(CDumpContext& dc) const;
- #endif
- protected:
- // Generated message map functions
- protected:
- //{{AFX_MSG(CDrawDoc)
- // NOTE - the ClassWizard will add and remove member functions here.
- // DO NOT EDIT what you see in these blocks of generated code !
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
- private:
- CTypedPtrArray<CObArray,CLine*>m_LineArray;
- CTypedPtrArray<CObArray,CCircle*>m_CircleArray;
- CTypedPtrArray<CObArray,CArc*>m_ArcArray;
- CTypedPtrArray<CObArray,CText*>m_TextArray;
- CTypedPtrArray<CObArray,CTag*>m_TagArray;
- CTypedPtrArray<CObArray,CPline*>m_PLineArray;
- CTypedPtrArray<CObArray,CPlineRgn*>m_PLineRgnArray;
- CTypedPtrArray<CObArray,CLinkNet*>m_NetArray;
- // void DrawGraph(CDC* pDC,int Lb,int index,int DrawMode,int DrawModel,short BackColor);
- };
- /////////////////////////////////////////////////////////////////////////////
- //{{AFX_INSERT_LOCATION}}
- // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
- #endif // !defined(AFX_DRAWDOC_H__9442AAC2_5173_4ADF_A662_BB95DE02A9A9__INCLUDED_)
- //long color=r_Color+g_Color*256+b_Color*256*256;