#pragma once #include "resource.h" #include "afxwin.h" #include "GsPreviewCtrl.h" #include "afxcmn.h" #include "EarThwormDef.h" class AecDbX3dGroup; class AecDbObjXDataMap; class CGLBJDlg : public CDialog { DECLARE_DYNAMIC(CGLBJDlg) public: CGLBJDlg(CWnd* pParent = NULL); virtual ~CGLBJDlg(); enum { IDD = IDD_GLBJ_DLG }; void SetCrossSectionScr(LPCTSTR psz,double dLen){ m_sCrossSectionScr = psz; m_dLen = dLen;} int GetX3dSolidRecs(AecDbX3dGroup*& group); int GetX3dSolidRecs(AecDbX3dGroup*& pGroup,const AcGePoint3d& ptFr,const AcGeVector3d& vtDir); //sh int GetX3dSolidRecsShEw(AecDbX3dGroup*& group); int GetX3dSolidRecsShEw(AecDbX3dGroup*& pGroup,const AcGePoint3d& ptFr,const AcGeVector3d& vtDir); void SetReloadGLBJ(AecDbObjXDataMap* pXDataMap); protected: virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() public: virtual BOOL OnInitDialog(); afx_msg void OnBnClickedCheck1(); afx_msg void OnBnClickedOk(); afx_msg LRESULT OnViewLButtonDown(WPARAM wp,LPARAM lp); afx_msg void OnBnClickedButton2(); afx_msg void OnCbnSelchangeCombo1(); afx_msg void OnBnClickedButton1(); afx_msg void OnBnClickedButton11(); void ShowEarthWorm(); void HitEarthWorm(int idxRoom); void ReloadFromXDataMap(); void AddRecordPreview(int nPos,int idxRoom); void AdjustWindowsNoAddRec(CRect& rcA); //sh void ShowShEarthWorm(); void ShowAddtion(); void ShowRoomName(); void ExtractRegionRooms(); void FormatAddtionScr(); void ShowEwSection(); void ExtrAddtionToMap( ); STSection* GetShEwSection() const; void HitShEarthWorm(int idxRoom); LRESULT OnViewShEwLButtonDown(WPARAM wp, LPARAM lp); public: double m_dCurRoomW; double m_dWAdd; double m_dOpenL; double m_dB; double m_dAngle; double m_dA2; BOOL m_bAllRoom; int m_idxRoom; CString m_sCrossSectionScr; int m_nPos; double m_dLen; protected: AcArray m_arRecord; AecDbObjXDataMap* m_pGLBJXDataMap; public: bool m_bIsAddRec; CGsPreviewCtrl m_wndViewCtrl; AcDbPolyline* m_pRectCell; CEdit m_wndEditL; CEdit m_wndEditB; CEdit m_wndEditA; CButton m_wndBtOk; CButton m_wndBtAdd; CComboBox m_wndCombo; CButton m_wndBtUpdate; CEdit m_wndEditA2; CMapStringToPtr m_mapPosRoom2Pl; CListCtrl m_wndRecordList; CImageList m_ImageList; afx_msg void OnNMClickList1(NMHDR *pNMHDR, LRESULT *pResult); CButton m_wndDelRecBt; afx_msg void OnBnClickedButton3(); CStatic m_wndStaticSP; CButton m_wndBtCan; double m_dZOff; double m_dTAdd; protected://sh // 缓存,出图用 AcDbVoidPtrArray m_arDrawBuffer; //附属脚本如支架 CMapStringToString m_mapAddtion; //所有的舱室 AcDbVoidPtrArray m_arRegionRooms; // 舱体类型 std::vector m_roomTypes; CMapStringToPtr m_mapIndexToDbText; //点击的舱室 AcDbEntity* m_pRegionRoom; // 当前所选的截面描述 STSection m_curSection; CString m_sAddtionScr; //舱室名称和偏移 CMapStringToString m_mapIndexToName; public: double m_dHoleH; double m_dH; CEdit m_wndH5; };