#pragma once #include "resource.h" #include "supergridctrl.h" #include #include class CPipeSysSettingList; class CPipeSystemSettingDlg : public CDialog { DECLARE_DYNAMIC(CPipeSystemSettingDlg) public: struct RECORD { int outClr, innClr; double innLw, outLw; AcDbObjectId outLt, innLt; CString outLy, innLy, oldSys, newSys; }; typedef std::map MAP_RECORD; public: CPipeSystemSettingDlg(CWnd* pParent = NULL); // standard constructor virtual ~CPipeSystemSettingDlg(); // Dialog Data enum { IDD = IDD_PIPE_SYSTEM_SETTING }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual BOOL OnInitDialog(); DECLARE_MESSAGE_MAP() afx_msg void OnBntClickAdd(); afx_msg void OnBntClickDel(); afx_msg void OnBntClickExport(); afx_msg void OnBntClickImport(); afx_msg void OnOK(); private: void refreshListCtrl(); CTreeItem* addRootRecord(LPCTSTR title); void addChildRecord(CTreeItem *pTree , LPCTSTR title , LPCTSTR clr , LPCTSTR linetype , LPCTSTR lineweight , LPCTSTR layer ); private: CImageList m_image; CStatic m_ctrlPos; CPipeSysSettingList *m_pListCtrl; BOOL m_bUpdateAllEntity; BOOL m_bUseOutClrFor3D; CUIISQLiteServer m_db; }; class CPipeSysSettingList : public CSuperGridCtrl { public: typedef CPipeSystemSettingDlg::MAP_RECORD MAP_RECORD; public: CPipeSysSettingList(); virtual ~CPipeSysSettingList(); public: void Initialize(); bool hasModify(LPCTSTR sys); void getRecords(MAP_RECORD &rcs, bool bAll); protected: virtual BOOL PreTranslateMessage(MSG *pMsg); afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg BOOL OnEndlabeledit(NMHDR *pNMHDR, LRESULT *pResult); DECLARE_MESSAGE_MAP() public: CUIISQLiteServer *m_pDb; CImageList m_image; // 被修改的行号 std::set m_setOfModify; // 如果系统名称被修改,则保存到这里 // first-new second-old std::map m_mapOfSysModify; };