#if !defined(AFX_SPRINKLERBYLINEDLG_H__50852179_6C65_4DF5_87CA_E2DC734C967B__INCLUDED_) #define AFX_SPRINKLERBYLINEDLG_H__50852179_6C65_4DF5_87CA_E2DC734C967B__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // SprinklerByLineDlg.h : header file // ///////////////////////////////////////////////////////////////////////////// // CSprinklerByLineDlg dialog #include "Resource.h" //#include #include "MySpin.h" #include "EdJigEx.h" #include "realedit.h" #include "SprinklerByRectDlg.h" #include "SprinkIsometryDlg.h" #include "SprinklerByFreeDlg.h" #include "SprinklerByArcDlg.h" #include "SprinklerBySectionDlg.h" class CSprinklerByLineDlg : public CDialog { // Construction public: CSprinklerByLineDlg(CWnd* pParent = NULL); // standard constructor DECLARE_DYNAMIC(CSprinklerByLineDlg) // Dialog Data //{{AFX_DATA(CSprinklerByLineDlg) enum { IDD = IDD_SPRINKLER_LINE }; CRealEdit m_editDist2Wall; CRealEdit m_editDist; CRealEdit m_editEle; CMySpin m_spinDist; BOOL m_bDrawCir; CString m_csRadius; int m_iDist2Wall; //}}AFX_DATA static int m_iOldDist; static int m_iMode; static int m_iNum; static int m_iDist; static int m_iType; static double m_nEle; // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSprinklerByLineDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: // Generated message map functions //{{AFX_MSG(CSprinklerByLineDlg) virtual BOOL OnInitDialog(); afx_msg void OnClose(); afx_msg void OnCheckDraw(); afx_msg void OnKillfocusEditDist(); afx_msg void OnKillfocusEditDist2(); afx_msg void OnKillfocusEditEle(); afx_msg void OnKillfocusComboRadius(); afx_msg LONG_PTR onAcadKeepFocus(UINT_PTR, LONG_PTR); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; class CSprinklerPreview: public AcDbEntity { public: CSprinklerPreview(CSprinkIsometryDlg *dlg, XPoint ptStart, XPoint ptEnd, double nXDist, double nYDist); CSprinklerPreview(CSprinklerByLineDlg *dlg, XPoint ptStart, XPoint ptEnd); CSprinklerPreview(CSprinklerByArcDlg *dlg, XPoint ptStart, XPoint ptEnd); CSprinklerPreview(CSprinklerByRectDlg *dlg, XPoint ptStart, XPoint ptEnd); CSprinklerPreview(CSprinklerByFreeDlg *dlg, XPoint ptStart, XPoint ptEnd); CSprinklerPreview(CSprinklerBySectionDlg *dlg, XPoint pt1, XPoint pt2, XPoint pt3); //扇形喷头 CSprinklerPreview(XPoint ptStart, XPoint ptEnd); virtual ~CSprinklerPreview(); virtual Adesk::Boolean subWorldDraw(AcGiWorldDraw *pWd); XPoint m_ptStart, m_ptEnd, m_ptMid; CSprinklerByLineDlg *m_pdlg; CSprinklerByRectDlg *m_pdlg2; CSprinkIsometryDlg *m_pdlg3; CSprinklerByFreeDlg *m_pdlg4; CSprinklerBySectionDlg *m_pdlg5; CSprinklerByArcDlg *m_pdlg6; AcDbLine *m_pDrawLine; AcDbPolyline *m_pDrawRect; XPointList m_lstPt; BOOL m_bNeedText; double m_nRadius; double m_nXDist, m_nYDist; }; class TSprinklerJig : public TSymbEdJig { protected: XPoint m_ptStart, m_ptEnd, m_ptMid; public: CSprinklerPreview *m_pDrawEnt; TSprinklerJig(CSprinkIsometryDlg *dlg, XPoint pt1, double nXDist, double nYDist); //等距喷头 TSprinklerJig(CSprinklerByLineDlg *dlg, XPoint pt1); //直线喷头 TSprinklerJig(CSprinklerByRectDlg *dlg, XPoint pt1); //矩形喷头 TSprinklerJig(CSprinklerByFreeDlg *dlg, XPoint pt1); //任意喷头 TSprinklerJig(CSprinklerBySectionDlg *dlg, XPoint pt1, XPoint pt2, XPoint pt3); //扇形喷头 TSprinklerJig(CSprinklerByArcDlg *dlg, XPoint pt1, XPoint pt2); //弧形喷头 TSprinklerJig(XPoint pt1); ~TSprinklerJig(); virtual int DoIt(int *pKeyIndex=NULL); DragStatus GetPoint(XPoint &pt); void SetStartPoint(XPoint pt); void SetDist(double dDist); XPoint GetCorrectPt(); int m_iPipeType; double m_nDist; double m_nLockAng; protected: virtual Adesk::Boolean update(); virtual AcDbEntity* entity() const; }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_SPRINKLERBYLINEDLG_H__50852179_6C65_4DF5_87CA_E2DC734C967B__INCLUDED_)