#include "stdafx.h" #include "DCQJDlg.h" #include "ECableParamDlg.h" #define INDEX_IMG 0 #define INDEX_SEL_IMG 1 IMPLEMENT_DYNAMIC(CDCQJDlg, CDialog) CDCQJDlg::CDCQJDlg(CWnd* pParent /*=NULL*/) : CDialog(CDCQJDlg::IDD, pParent) , m_nAlign(0) { } CDCQJDlg::~CDCQJDlg() { } void CDCQJDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_wndList); DDX_Radio(pDX, IDC_RADIO1, m_nAlign); } BEGIN_MESSAGE_MAP(CDCQJDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON1, &CDCQJDlg::OnBnClickedButton1) ON_BN_CLICKED(IDC_BUTTON3, &CDCQJDlg::OnBnClickedButton3) ON_BN_CLICKED(IDOK, &CDCQJDlg::OnBnClickedOk) END_MESSAGE_MAP() BOOL CDCQJDlg::OnInitDialog() { CDialog::OnInitDialog(); CBitmap bmp; if (!bmp.LoadBitmap (IDB_TOOLBAR)) { AfxMessageBox(_T("Can't load bitmap: %x\n"),IDB_TOOLBAR); 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,100); m_wndList.InsertColumn(1,_T("宽度"),LVCFMT_LEFT,120); m_wndList.InsertColumn(2,_T("高度"),LVCFMT_LEFT,120); m_wndList.InsertColumn(3,_T("标高"),LVCFMT_LEFT,120); m_wndList.InsertColumn(4,_T("类型"),LVCFMT_LEFT,240); return TRUE; } //添加记录 void CDCQJDlg::OnBnClickedButton1() { CECableParamDlg dlg; dlg.SetAlignEnable(FALSE); if (IDOK == dlg.DoModal() ) { AecHvac::DuctParam* pdp = new AecHvac::DuctParam; memset(pdp,0,sizeof(AecHvac::DuctParam)); dlg.GetPipeParam(pdp); InsertPipeParam(pdp); } } void CDCQJDlg::InsertPipeParam(AecHvac::DuctParam* pParam) { if (pParam == NULL) return; CString sEl; int nCount = m_wndList.GetItemCount(); for (int i = 0;i < nCount;i++) { sEl = m_wndList.GetItemText(i,3); if ( fabs(_ttof(sEl) - pParam->m_dEl) < 1.e-3) { AfxMessageBox(_T("新加层标高冲突!请重新添加!")); return; } } CString sText = _T("111"); m_wndList.InsertItem(nCount,sText); sText.Format(_T("%g"),pParam->dSize[0]); m_wndList.SetItemText(nCount,1,sText); sText.Format(_T("%g"),pParam->dSize[1]); m_wndList.SetItemText(nCount,2,sText); sText.Format(_T("%g"),pParam->m_dEl); m_wndList.SetItemText(nCount,3,sText); m_wndList.SetItemText(nCount,4,pParam->szType); m_wndList.SetItemData(nCount,(DWORD_PTR)pParam); AdjustNo(); } void CDCQJDlg::AdjustNo() { CString sIndex; int nCount = m_wndList.GetItemCount(); for (int i = 0;i < nCount;i++) { sIndex.Format(_T("%d"),i+1); m_wndList.SetItemText(i,0,sIndex); } } //删除记录 void CDCQJDlg::OnBnClickedButton3() { POSITION ps = m_wndList.GetFirstSelectedItemPosition(); if (ps != NULL) { int nItem = m_wndList.GetNextSelectedItem(ps); if (nItem != -1) { DWORD_PTR dwXData = m_wndList.GetItemData(nItem); if (dwXData != 0) { AecHvac::DuctParam* pdp = (AecHvac::DuctParam*)dwXData; delete pdp; } m_wndList.DeleteItem(nItem); } } } void CDCQJDlg::OnBnClickedOk() { AecHvac::DuctParam* pdp = NULL; int nCount = m_wndList.GetItemCount(); for (int i = 0;i < nCount;i++) { DWORD_PTR dwXData = m_wndList.GetItemData(i); if (dwXData != 0) { pdp = (AecHvac::DuctParam*)dwXData; pdp->m_nAlign = m_nAlign; m_arParamPtrs.append(pdp); } } OnOK(); } void CDCQJDlg::GetPipeParams(AcArray& arParamPtrs) { arParamPtrs.append(m_arParamPtrs); }