#include "stdafx.h" #include "PTLTDlg.h" #include "AecDbLineStair.h" #include "AecDbArcStair.h" DLLIMPEXP CString IDCreate(); IMPLEMENT_DYNAMIC(CPTLTDlg, CDialog) CPTLTDlg::CPTLTDlg(CWnd* pParent /*=NULL*/) : CDialog(CPTLTDlg::IDD, pParent) , m_dBarH(1080) , m_dBarSp(1200) , m_dBarH1(650) , m_dBarD(30) , m_dSteepH(200) , m_dSteept(8) , m_dSteepW(400) , m_dW(1000) , m_dSideW(200) , m_dSidet(40) , m_dBomEl(0) , m_dTopEl(4000) , m_sMaterial(_T("不锈钢")) , m_sFactory(_T("厂家自制")) , m_sNo(_T("")) , m_bNOSetDefault(TRUE) { GET_CACHE(CPTLTDlg , %f%f%f%f%f%f%f%f%f%f%f%f%s%s%s , &m_dBarH , &m_dBarSp , &m_dBarH1 , &m_dBarD , &m_dSteepH , &m_dSteept , &m_dSteepW , &m_dW , &m_dSideW , &m_dSidet , &m_dBomEl , &m_dTopEl , &m_sMaterial , &m_sFactory , &m_sNo ); if (m_bNOSetDefault) m_sNo = IDCreate(); } CPTLTDlg::~CPTLTDlg() { } void CPTLTDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_dBarH); DDX_Text(pDX, IDC_EDIT2, m_dBarSp); DDX_Text(pDX, IDC_EDIT13, m_dBarH1); DDX_Text(pDX, IDC_EDIT12, m_dBarD); DDX_Text(pDX, IDC_EDIT4, m_dSteepH); DDX_Text(pDX, IDC_EDIT5, m_dSteept); DDX_Text(pDX, IDC_EDIT18, m_dSteepW); DDX_Text(pDX, IDC_EDIT20, m_dW); DDX_Text(pDX, IDC_EDIT7, m_dSideW); DDX_Text(pDX, IDC_EDIT8, m_dSidet); DDX_Text(pDX, IDC_EDIT10, m_dBomEl); DDX_Text(pDX, IDC_EDIT11, m_dTopEl); DDX_Text(pDX, IDC_EDIT23, m_sMaterial); DDX_Text(pDX, IDC_EDIT24, m_sFactory); DDX_Text(pDX, IDC_EDIT29, m_sNo); DDX_Check(pDX, IDC_CHECK7, m_bNOSetDefault); } BEGIN_MESSAGE_MAP(CPTLTDlg, CDialog) ON_BN_CLICKED(IDOK, &CPTLTDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_CHECK7, &CPTLTDlg::OnBnClickedCheck7) END_MESSAGE_MAP() BOOL CPTLTDlg::OnInitDialog() { CDialog::OnInitDialog(); if (m_bNOSetDefault) { GetDlgItem(IDC_EDIT29)->EnableWindow(FALSE); } UpdateData(FALSE); return TRUE; } void CPTLTDlg::GetLineStairData(LineStair& data) const { data.bar.dD = m_dBarD; data.bar.dt = 2.0; data.bar.dBomEl = m_dBomEl; data.bar.dH1 = m_dBarH1; data.bar.dH = m_dBarH; data.bar.dP = m_dBarSp; data.dSteepH = m_dSteepH; data.dSteept = m_dSteept; data.dSteepW = m_dSteepW; data.dSidet = m_dSidet; data.dSideW = m_dSideW; data.dW = m_dW; data.dBomEl = m_dBomEl; data.dTopEl = m_dTopEl; _tcscpy(data.m_sMaterial,m_sMaterial); _tcscpy(data.m_sFactory,m_sFactory); _tcscpy(data.m_sNo,m_sNo); } void CPTLTDlg::SetFromId(AcDbObjectId& id) { AcDbEntity* pEnt = NULL; if (Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForRead)) { AecDbLineStair* pLS = AecDbLineStair::cast(pEnt); if (pLS != NULL) { LineStair data; pLS->GetLineStairData(data); m_dBarD = data.bar.dD; m_dBomEl = data.bar.dBomEl; m_dBarH1 = data.bar.dH1; m_dBarH = data.bar.dH; m_dBarSp = data.bar.dP; m_sMaterial = data.m_sMaterial; m_sFactory = data.m_sFactory; m_dSteepH = data.dSteepH ; m_dSteept = data.dSteept; m_dSteepW = data.dSteepW; m_dSidet = data.dSidet; m_dSideW = data.dSideW; m_dW = data.dW; m_dBomEl = data.dBomEl; m_dTopEl = data.dTopEl; m_sNo = data.m_sNo; } AecDbArcStair* pAS = AecDbArcStair::cast(pEnt); if (pAS != NULL) { LineStair data; pAS->GetLineStairData(data); m_dBarD = data.bar.dD; m_dBomEl = data.bar.dBomEl; m_dBarH1 = data.bar.dH1; m_dBarH = data.bar.dH; m_dBarSp = data.bar.dP; m_sMaterial = data.m_sMaterial; m_sFactory = data.m_sFactory; m_dSteepH = data.dSteepH ; m_dSteept = data.dSteept; m_dSteepW = data.dSteepW; m_dSidet = data.dSidet; m_dSideW = data.dSideW; m_dW = data.dW; m_dBomEl = data.dBomEl; m_dTopEl = data.dTopEl; m_sNo = data.m_sNo; } pEnt->close(); } } void CPTLTDlg::OnBnClickedOk() { UpdateData(TRUE); SET_CACHE(CPTLTDlg , %f%f%f%f%f%f%f%f%f%f%f%f%s%s%s , m_dBarH , m_dBarSp , m_dBarH1 , m_dBarD , m_dSteepH , m_dSteept , m_dSteepW , m_dW , m_dSideW , m_dSidet , m_dBomEl , m_dTopEl , m_sMaterial , m_sFactory , m_sNo); OnOK(); } void CPTLTDlg::OnBnClickedCheck7() { if (m_bNOSetDefault) { GetDlgItem(IDC_EDIT29)->EnableWindow(FALSE); } else { GetDlgItem(IDC_EDIT29)->EnableWindow(TRUE); } }