#pragma once #include "afxcmn.h" #include "resource.h" #include "afxwin.h" #include "BlkRecsPreviewCtrl.h" #include "XListCtrl.h" class AecDbEwEquipment; class CEquipManaDlg : public CAcUiDialog { DECLARE_DYNAMIC(CEquipManaDlg) public: enum TYPE { // 显示实体 eEntity = 0, // 显示DWG文件 eDWGFile, // None eNone, }; enum USE { eMana = eNone +1, eInsert, }; struct STItem { CString ID, Name, IDClass; }; public: // CEquipManaDlg(const TYPE &type, const USE &use, LPCTSTR prefix, LPCTSTR title, CWnd* pParent = NULL); virtual ~CEquipManaDlg(); void SetFolderShow(LPCTSTR pszFolder); void SetClassShow(LPCTSTR pszClass, double dDn = -1); //AecDbEwEquipment* GetSelectEqu(); int GetSelectEquDBIdx(); void Enable2DFlagCheck(BOOL bCheck2dFlag); //设置okbutton title void SetOkButtonText(LPCTSTR pszText); TYPE getType() { return m_type; } CString getTblPrefix() { return m_sPrefix; } CUIISQLiteServer* getDbPtr() { return m_pDb; } STItem GetCurSelItemData(); bool GetBaseStruPart(AcDbVoidPtrArray& arBaseStruParts); void exportEquToDisk(); enum { IDD = IDD_EQUIPMANADLG }; protected: virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL OnInitDialog(); afx_msg void OnBnClickedOk(); afx_msg void OnTvnSelchangedTreeequip(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnNewfolder(); afx_msg void OnNewclass(); afx_msg void OnRename(); afx_msg void OnDelete(); afx_msg void OnAdd(); afx_msg void OnDel(); afx_msg void OnProperty(); afx_msg void OnBnClickedBtadd(); afx_msg void OnBnClickedBtdel(); afx_msg void OnBnClickedBtop(); afx_msg void OnNMRclickTreeequip(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnBnClickedBtnewfolder(); afx_msg void OnBnClickedBtnewclass(); afx_msg void OnBnClickedBtrename(); afx_msg void OnBnClickedBtdelitem(); afx_msg void OnBnClickedBtmodirem(); afx_msg void OnBnClickedBtSearch(); afx_msg void OnBnClickedBand2d(); afx_msg void OnBnClickedBimAdd(); afx_msg void OnBnClickedBimMod(); afx_msg void OnBnClickedBimDel(); afx_msg void OnBnClickedBimImp(); afx_msg void OnBnClickedBimExp(); afx_msg LRESULT OnCellSelectChange(WPARAM wp, LPARAM lp); DECLARE_MESSAGE_MAP() void ShowEquipFolder(); void ShowEquipClass(HTREEITEM hFolder,LPCTSTR pszFolderID); void ShowClassEquips(CString& sID); void FreeBuffer(); void DoPopularMenu(HTREEITEM hItem,CPoint point); // 得到当前选中item的文件,path为传入文件路径,如果文件存在,则删除 bool GetCurSelFile(LPCTSTR path); void HideDialog(bool Flag); public: CUIISQLiteServer* m_pDb; CImageList m_Imagelist; CTreeCtrl m_wndEquipPrmTree; CBlkRecsPreviewCtrl m_wndPreview; CButton m_wndBtOk; CBitmap m_bmpCmd[4]; CButton m_wndBtNewFolder; CButton m_wndBtNewClass; CButton m_wndBtRename; CButton m_wndBtDelItem; HTREEITEM m_hItemSel; protected: // 对话框 显示类型 TYPE m_type; // 对话框用途 USE m_use; //特定显示目录 CString m_sFolderShow; //特定显示分类 CString m_sClassShow; // 如果是阀门,则公称直径 int m_iFmDN; // 树中hitem与数据库表中ClassId的映射 CMapStringToString m_mapItem2FolderID; // 当对话框类型为“实体”时,保存当前页面Item的实体指针,最后释放内存 AcDbVoidPtrArray m_arEqusTmpPtr; AcDbVoidPtrArray m_arBaseStruParts; // 保存当前页面所有Item的package表的数据 std::vector m_arItems; // 对话框要操作的数据库表的表名前缀 CString m_sPrefix; // 对话框title CString m_sTitle; CString m_sOkButton; // 以下为设备管理命令使用 CButton m_btnBimAdd, m_btnBimMod, m_btnBimDel, m_btnBimImp, m_btnBimExp; CXListCtrl m_wndBimLst; CFont m_font; // end public: BOOL m_b2DFlag; BOOL m_bCheck2dFlag; BOOL m_bVolHasFlang; BOOL m_bFZSB;//放置设备 public: // 设备管理 static void SBGL(); // 水池管理 static void SCGL(); // 插入设备 static void CRSB(); // 批量导入 static void PLDR(); // 修改标高 static void XGBG(); // 修改颜色 static void XGYS(); static AcDbEntity* getEntity(CEquipManaDlg *pDlg); static AcDbEntity* getEntity(CUIISQLiteServer *pDb, CEquipManaDlg::TYPE type, LPCTSTR prefix, CEquipManaDlg::STItem item); static void SBJC(); //管道风机 static void GDFJ(); afx_msg void OnBnClickedCheck1(); BOOL m_bHasBase; };