#pragma once #include "FormatDC.h" #include "GeoMapGdbWriter.h" namespace NFormatWriter { class CGdbDC : public CFormatDC { public: CGdbDC(void); ~CGdbDC(void); virtual void Initial(void); virtual int OutFront(void); virtual int OutEnd(void); virtual void PolyLine(CPointList& dp); virtual void Draw(CText& text, CCurveEx& curve) override; void Draw(CImageInsert& image); void PaintRgn(CCurveEx& curve); void Draw(CSection& section,CRect8* rect=NULL); void Draw(CInsertDraw& m_insert); void Draw(CInsertOld& m_insert); BOOL OpenWrite(CString lpszPathName, bool bBinary = true); //打开写文件 BOOL OpenWrite(CFile *pFile); //打开写文件 //void Close(); //关闭写文件 void SetPictureRect(CRect8 rect); CRect8 GetPictureRect(void); void SetScaleFactor(double scaleFactor); double GetScaleFactor(void); //FILE* GetFile(void); /*virtual void SetFile(FILE* pFile);*/ void SetUnit(CSize unit); CSize GetUnit(void); virtual void SetMapSize(CSize sz) {} int BuildFileHead(void); int BuildSymLib(void); GMLayerHead BuildLayerHead(void); int BuildPline(int size, IPoint *ip); int BuildString(CText *text); int BuildImage(long w,long h,CRect8 rect); int BuildPolygon(int size, IPoint *ip); int BuildSeismacSection(CSection& section); int BuildElement(void); int Amplify10(double num); void DeleteObj(void); public: CGeoMapGdbWriter *m_gdb; public: CRect8 m_rect; CSize m_unit; double m_scaleFactor; int m_headSize; int m_symbolSize; int m_polylineSize; int m_textSize; int m_polygonSize; int m_multTextySize; IPoint m_xyData; list m_xyList; int m_DataLength; BYTE *m_imageData; int m_imageSize; int m_seismacSize; int m_xScale;//地震剖面x方向刻度 int m_yScale;//地震剖面y方向刻度 int m_scale;//刻度比例 要求整数 int m_x1,m_y1,m_x2,m_y2;//图形计算边界 不通图件设置不同值 double m_w,m_h;//x2-x1 y2-y1实际宽高便于计算 int m_left,m_top,m_rignt,m_bottom;//图件边距mm int m_paperW,m_paperH;//图纸宽高mm }; }//namespace