#pragma once #include "resource.h" #include "aecdbxdraw.h" #include class AecDbEwEquipment; class CBDQGDlg : public CDialog { DECLARE_DYNAMIC(CBDQGDlg) public: CBDQGDlg(CWnd* pParent = NULL); virtual ~CBDQGDlg(); enum { IDD = IDD_BDQG_DLG }; struct _Record { public: _Record(){} _Record(const void *pData) { fromBinary(pData); } _Record(LPCTSTR psz):_sName(psz){} _Record(const _Record &r) { this->operator=(r); } _Record(LPCTSTR pszName , LPCTSTR pszUse , LPCTSTR pszDesc , double h , double w , double d):_sName(pszName) , _sUse(pszUse) , _sDesc(pszDesc) , _dHeight(h) , _dWidth(w) , _dDeep(d) {} _Record &operator = (const _Record &r) { _sName = r._sName; _sUse = r._sUse; _sDesc = r._sDesc; _dHeight = r._dHeight; _dWidth = r._dWidth; _dDeep = r._dDeep; return *this; } CString _sName, _sUse, _sDesc; int _dHeight, _dWidth, _dDeep; bool operator == (const _Record &r)const { return _sName == r._sName; } int getBinarySize(); void makeBinary(void*& pData, int &nSize); void fromBinary(const void* pData); }; typedef std::vector<_Record> _Records; protected: virtual void DoDataExchange(CDataExchange* pDX); virtual BOOL OnInitDialog(); void initCtrls(); afx_msg void OnClickListItem(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedAdd(); afx_msg void OnBnClickedModify(); afx_msg void OnBnClickedDel(); afx_msg void OnBnClickedUp(); afx_msg void OnBnClickedDw(); DECLARE_MESSAGE_MAP(); void moveUpData(const int &idx); _Records::iterator findDataByName(LPCTSTR psz); void makeBinaryByDatas(void *&pData, int &nSize); CString getCurrentSelectName(); int getCurrentSelectIdx(); void setCurrentSelect(const int &idx); void makeDatasByBinary(const void *pData); public: AecDbEwEquipment* getEqu(const AcGePoint3d &ptIns, const AcGeVector3d &vtDir); bool initByEqu(AecDbEwEquipment *pEqu, AcGePoint3d &ptIns, AcGeVector3d &vtDir); private: void refreshList(); private: CString m_sName, m_sUse, m_sDesc; int m_dHeight, m_dWidth, m_dDeep; int m_dSpace, m_dElev; CString m_sMaterial, m_sFactory, m_sCommon; int m_iAlignV, m_iAlignH; CListCtrl m_list; _Records m_datas; }; class DBClick_DQG: public AecDbXDraw { public: ACRX_DECLARE_MEMBERS(DBClick_DQG); public: DBClick_DQG(void); ~DBClick_DQG(void); public: virtual Acad::ErrorStatus Edit(); };