#pragma once #include "resource.h" #include "singleton.h" class AecDbMultiPartEntity; class AecDbX3dPart; class AcDbX3dSolid; class CPMFYDlg : public CDialog { DECLARE_DYNAMIC(CPMFYDlg) public: CPMFYDlg(CWnd* pParent = NULL); virtual ~CPMFYDlg(); virtual BOOL OnInitDialog(); enum { IDD = IDD_PMFY_DLG }; protected: virtual void DoDataExchange(CDataExchange* pDX); DECLARE_MESSAGE_MAP() bool findMainPart(AecDbMultiPartEntity *pM, AecDbX3dPart *&pPart, AcDbX3dSolid *&pSolid); bool NewEntity(const AcArray &arRegs); bool InplaceEntity(const AcArray &arRegs); void setXPartInfo(AecDbX3dPart *pPart); public: afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedBtnPath(); afx_msg void OnBnClickedBtnSectionStart(); afx_msg void OnBnClickedBtnSectionEnd(); afx_msg LONG_PTR onAcadKeepFocus(UINT_PTR, LONG_PTR); afx_msg void OnClose(); afx_msg void OnShowWindow(BOOL bShow, UINT nStatus); afx_msg void OnStaticColor(); afx_msg HBRUSH OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor); void clear(); bool fromID(AcDbObjectId &id); bool selectPath(); private: CString m_sMaterial; CString m_sApplication; double m_dElevStart; double m_dElevEnd; int m_clr; CString m_sName; AcDbCurve *m_pPathCurve; AcDbRegion *m_pStartRegion; AcDbRegion *m_pEndRegion; bool m_bInplace; CString m_strStartRegion; CString m_strEndRegion; CString m_strPath; AcDbObjectId m_idInplace; public: static void start(); static void inplace(AcDbObjectId &id); }; typedef Singleton g_PmfyDlg;