#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(); //CItem * m_pItem; //CItem * m_pOtherItem; //如CItemSolid,使用m_pItem为了在选择曲线时绘辅助线 //int DataSourceType; // 数据来源类型 //CItemState ItemState; //保存一些状态,如随手写字大小、查找等 ////符号修改 //CXyDC * m_pBakXyDC; //修改符号之时,备份原图的显示范围 //CXy * m_pMarkDraw; //修改符号状态,指向修改的符号 //CItemMakeMark* m_pItemMakeMark; //符号制作模式 //int m_nUnitMode; //根据设置的比例在打印单位与实际单位间变换方式 public: virtual BOOL OpenFile(LPCTSTR lpszFileName, BOOL bMergeFile); 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); //virtual BOOL OnNewDocument(); //virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); ////virtual void OpenDocumentEnd(void); //virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); //virtual void DeleteContents(); //virtual void OnCloseDocument(); //virtual BOOL DoSave(LPCTSTR pszPathName, BOOL bReplace = TRUE); //virtual CString GetElementString(POSITION pSelect, CPoint2D* pPoint); 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); };