#include "stdafx.h" #include "MRLTDlg.h" #include "AecDbMRPLineStair.h" IMPLEMENT_DYNAMIC(CMRLTDlg, CDialog) CMRLTDlg::CMRLTDlg(CWnd *pParent /*=NULL*/) : CDialog(CMRLTDlg::IDD, pParent) , m_dSteepW(250) , m_dSteepH(160) , m_dStairW(1200) , m_dRestPtW(1200) , m_dSbThick(150) , m_dStiffnW(250) , m_dStiffnH(286) , m_dBarH(923) , m_dBarSp(300) , m_dGarSize0(40) , m_dGarSize1(60) , m_dBarSize0(30) , m_dBarSize1(30) , m_nBShape(FALSE) , m_sBarMat(_T("不锈钢")) , m_nGShape(FALSE) , m_dGarExt(60) , m_dBomEl(0) , m_sGarMat(_T("不锈钢")) , m_bStiffn(FALSE) , m_nGarBarLR(0) , m_bGBResetPLF(FALSE) { m_nSteepSize = 2; memset(m_nSteeps,0,sizeof(int) * 20); m_nSteeps[0] = 15; m_nSteeps[1] = 15; m_bHasResetPLF = TRUE; m_bHasGarBar = TRUE; } CMRLTDlg::~CMRLTDlg() { } void CMRLTDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT2, m_dSteepW); DDX_Text(pDX, IDC_EDIT3, m_dSteepH); DDX_Text(pDX, IDC_EDIT5, m_dStairW); DDX_Control(pDX, IDC_LIST3, m_wndList); DDX_Text(pDX, IDC_EDIT14, m_dRestPtW); DDX_Text(pDX, IDC_EDIT33, m_dSbThick); DDX_Text(pDX, IDC_EDIT31, m_dStiffnW); DDX_Text(pDX, IDC_EDIT32, m_dStiffnH); DDX_Text(pDX, IDC_EDIT16, m_dBarH); DDX_Text(pDX, IDC_EDIT17, m_dBarSp); DDX_Text(pDX, IDC_EDIT30, m_dGarSize0); DDX_Text(pDX, IDC_EDIT28, m_dGarSize1); DDX_Text(pDX, IDC_EDIT21, m_dBarSize0); DDX_Text(pDX, IDC_EDIT26, m_dBarSize1); DDX_Check(pDX, IDC_CHECK7, m_nBShape); DDX_CBString(pDX, IDC_COMBO7, m_sBarMat); DDX_Check(pDX, IDC_CHECK6, m_nGShape); DDX_Text(pDX, IDC_EDIT19, m_dGarExt); DDX_Text(pDX, IDC_EDIT40, m_dBomEl); DDX_CBString(pDX, IDC_COMBO4, m_sGarMat); DDX_Check(pDX, IDC_CHECK2, m_bHasResetPLF); DDX_Check(pDX, IDC_CHECK8, m_bHasGarBar); DDX_Check(pDX, IDC_CHECK9, m_bStiffn); DDX_Check(pDX, IDC_CHECK10, m_bGBResetPLF); DDX_Radio(pDX, IDC_RADIO1, m_nGarBarLR); } BEGIN_MESSAGE_MAP(CMRLTDlg, CDialog) ON_BN_CLICKED(IDOK, &CMRLTDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON1, &CMRLTDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON2, &CMRLTDlg::OnBnClickedButton2) END_MESSAGE_MAP() BOOL CMRLTDlg::OnInitDialog() { CDialog::OnInitDialog(); UpdateData(FALSE); CBitmap bmp; if (!bmp.LoadBitmap (IDB_BITMAPPRIV)) { AfxMessageBox(_T("Can't load bitmap: %x\n"), IDB_BITMAPPRIV); ASSERT (FALSE); return FALSE; } BITMAP bmpObj; bmp.GetBitmap (&bmpObj); UINT nFlags = ILC_COLOR24 | ILC_MASK; m_imageList.Create (16, bmpObj.bmHeight, nFlags, 0, 0); m_imageList.Add (&bmp, RGB (255, 0, 0)); m_wndList.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_SINGLEROW); m_wndList.InsertColumn(0,_T("序号"),LVCFMT_LEFT,80); m_wndList.InsertColumn(1,_T("步数"),LVCFMT_LEFT,120); m_wndList.SetColumnItemData(1,NULL,ET_Edit); //默认参数 CString sNo,sTxt; for (int i = 0;i < m_nSteepSize;i++) { sNo.Format(_T("%d"),i+1); sTxt.Format(_T("%d"),m_nSteeps[i]); m_wndList.InsertItem(i,sNo); m_wndList.SetItemText(i,1,sTxt); } return TRUE; } void CMRLTDlg::SetStairData(MRPLineStair& data) { m_dSteepH = data.dSteepH; m_dSteepW = data.dSteepW; m_dStairW = data.dStairW; m_dBomEl = data.dBomEl; m_dRestPtW = data.dRestPtW; m_dStiffnW = data.dStiffnW; m_dStiffnH = data.dStiffnH; m_dSbThick = data.dSbThick; m_bStiffn = data.bHasStiffn; //m_dSideBeamW = data.dSideBeamW; //m_dSideBeamH = data.dSideBeamH; m_nSteepSize = data.nSteepSize; memset(m_nSteeps,0,sizeof(int) * 20); for (int i = 0;i < m_nSteepSize;i++) { m_nSteeps[i] = data.nSteeps[i]; } m_dBarH = data.dBarH; m_dGarSize0 = data.dGarSize[0]; m_dGarSize1 = data.dGarSize[1]; m_dGarExt = data.dGarExt; m_nGShape = data.nGShape; m_sGarMat = data.szGarMat; m_dBarSp = data.dBarSp; m_dBarSize0 = data.dBarSize[0]; m_dBarSize1 = data.dBarSize[1]; m_nBShape = data.nBShape; m_sBarMat = data.szBarMat; m_bHasResetPLF = data.bHasResetPLF; m_bHasGarBar = data.bHasGarBar; m_nGarBarLR = data.nGarBarLR; m_bGBResetPLF = data.bGBResetPLF; } void CMRLTDlg::GetStairData(MRPLineStair& data) const { data.dSteepH = m_dSteepH; data.dSteepW = m_dSteepW; data.dStairW = m_dStairW; data.dBomEl = m_dBomEl; data.nSteepSize = m_nSteepSize; for (int i = 0;i < m_nSteepSize;i++) { data.nSteeps[i] = m_nSteeps[i]; } data.dRestPtW = m_dRestPtW; data.dStiffnW = m_dStiffnW; data.dStiffnH = m_dStiffnH; data.dSbThick = m_dSbThick; //m_dSideBeamW = data.dSideBeamW; //m_dSideBeamH = data.dSideBeamH; data.dBarH = m_dBarH; data.dGarSize[0] = m_dGarSize0; data.dGarSize[1] = m_dGarSize1; data.dGarExt = m_dGarExt; data.bHasStiffn = m_bStiffn; data.nGShape = m_nGShape; _tcscpy(data.szGarMat,(LPCTSTR)m_sGarMat); data.dBarSp = m_dBarSp; data.dBarSize[0] = m_dBarSize0; data.dBarSize[1] = m_dBarSize1; data.nBShape = m_nBShape; _tcscpy(data.szBarMat,(LPCTSTR)m_sBarMat); data.bHasResetPLF = m_bHasResetPLF; data.bHasGarBar = m_bHasGarBar; data.nGarBarLR = m_nGarBarLR; data.bGBResetPLF = m_bGBResetPLF; } void CMRLTDlg::SetFromId(AcDbObjectId& id) { AcDbEntity* pEnt = NULL; if (Acad::eOk == acdbOpenAcDbEntity(pEnt,id,AcDb::kForRead)) { AecDbMRPLineStair* pZStair = AecDbMRPLineStair::cast(pEnt); if (pZStair != NULL) { MRPLineStair data; memset(&data,0,sizeof(MRPLineStair)); pZStair->GetStairData(data); SetStairData(data); } pEnt->close(); } } void CMRLTDlg::OnBnClickedOk() { UpdateData(); //数据有效性验证 m_nSteepSize = m_wndList.GetItemCount(); for (int i = 0;i < m_nSteepSize;i++) { m_nSteeps[i] = _ttoi( m_wndList.GetItemText(i,1) ); } OnOK(); } void CMRLTDlg::OnBnClickedButton1() { int nNo = 1; CString sText; for (int i = 0;i < m_wndList.GetItemCount();i++) { sText.Format(_T("%d"),nNo + i); m_wndList.SetItemText(i,0,sText); } sText.Format(_T("%d"),nNo + i); i = m_wndList.InsertItem(m_wndList.GetItemCount(),sText); m_wndList.SetItemText(i,1,_T("15")); } void CMRLTDlg::OnBnClickedButton2() { POSITION ps = m_wndList.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndList.GetNextSelectedItem(ps); if (nItem != -1) { m_wndList.DeleteItem(nItem); int nNo = 1; CString sText; for (int i = 0;i < m_wndList.GetItemCount();i++) { sText.Format(_T("%d"),nNo + i); m_wndList.SetItemText(i,0,sText); } } } }