#pragma once #include "item.h" #include "SigmaDoc.h" #include "WellPoleLib/NGraphExtend.h" // WellPoleDoc 文档 typedef struct _createNewWellStruct { CString strWellName; double ratio; double top; double bottom; CString strWellTemplateFilePath; } CREATENEWWELLSTRUCT; class CWellPole; class CWellPoleDoc : public CSigmaDoc // CDrawDoc { public: CWellPoleDoc(); virtual ~CWellPoleDoc(); public: virtual BOOL OpenFile(LPCTSTR lpszFileName, BOOL bMergeFile); virtual BOOL SaveFile(LPCTSTR lpszPathName); public: //virtual BOOL SetDefaultCursor(void); virtual CItem* FindItem(int nType); //BOOL Edit(POSITION pos); //virtual void Invalidate(void); //virtual void Invalidate(POSITION pos) { CDrawDoc::Invalidate(pos); } //virtual void Invalidate(LPRECT lpRect) { CDrawDoc::Invalidate(lpRect); } //virtual void Invalidate(COne* pOne) { CDrawDoc::Invalidate(pOne); } //void InvalidateDelete(CPositionList& list); //void InvalidateEagleEye(void); //CItem* GetOtherItem(void); //int GetOtherItemType(void); //void SetOtherItem(CItem* pItem); //void DeleteOtherItem(void); //void InitDocGrid(CXTPPropertyGrid& grid); //void SetSelection(CPositionList& list); //void SetSelection(POSITION pos); POSITION AddElement(COne* pOne); virtual void OnDraw(CXyDC& dc); public: //virtual CXy* GetDraw(void); CWellPole* GetWellPole(); COne* GetWellPoleOne(); CItemView* GetItemView() { return m_pItemView.get(); } protected: // virtual void DocInit(void); //建立m_pDraw, m_pItemView、m_pItemPrint的对象生成 //virtual COleServerItem* OnGetEmbeddedItem(); public: virtual void Serialize(CArchive& ar); int GetNodeWidth(void); virtual CItemSelect* GetSelectItem(void); void RemoveAt(COne* pOne); CSize GetDocSize(void); //BOOL IsMoveSelect(void); //virtual CSize GetHandleSize(void); //CRect GetHandleRect(LPPOINT lpPoint); //BOOL IsItemEnable(int type); //void UpdatePropertyGridContent(CItem* pItem); //void UpdateSelection(void); //void ModifiedMark(CXy* pXy); //virtual BOOL IsModifiedMarkState(void); BOOL GetElementRect(POSITION pos, CRect8& range); //virtual void DrawItem(CXyDC& dc, int nModeX = -1, int nModeY = -1); //CActionItem* m_pLastAction; //virtual void EnableDefaultTool(void); //void EnableToolSelection(void); //void EnableArrowTool(void); //BOOL OnGridItemChangeValue(CXTPPropertyGridItem* pItem); void SetActionItem(CActionItem* pAction, bool bDo = true); void NormalEXTLogFont(GDFLOGFONTEXT& font); CWellPole* CreateNewWell(CREATENEWWELLSTRUCT wellStruct); virtual BOOL GetDrawRange(CRect8& rect); //给缩放按钮功能提供图的范围 virtual void ClearSelection(void); CREATENEWWELLSTRUCT m_newWellStruct; CWellPole* CreateNewWell( LPCTSTR wellName, double top, double bottom, double ratio, LPCTSTR wellTemplateFile); virtual int Undo(); virtual int Redo(); static CXy* c_xy; //用来读取井文件,获得井内信息 static CWellPole* c_well; CActionItem* m_pLastAction; };