#include "stdafx.h" #include "BZJCDlg.h" #include "uitools.h" #include "AecDbEarthWorm.h" #include "JcxcXgpdDLG.h" IMPLEMENT_DYNAMIC(CBZJCDlg, CBaseDialog) CBZJCDlg::CBZJCDlg(CWnd* pParent /*=NULL*/) : CBaseDialog(CBZJCDlg::IDD, _T("BZJC"), -1, pParent) , m_fP1(.0f) , m_fP2(.0f) , m_fP3(.0f) , m_fP4(.0f) , m_fP5(.0f) , m_fP6(.0f) , m_fMinSize(.0f) , m_fW2(.0f) , m_fH2(.0f) , m_fW3(.0f) , m_fH3(.0f) , m_nPos1(0) , m_nPos2(0) { } CBZJCDlg::~CBZJCDlg() { } void CBZJCDlg::DoDataExchange(CDataExchange* pDX) { CBaseDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST1, m_LstCtrl); DDX_Text(pDX, IDC_EDIT7, m_fP1); DDX_Text(pDX, IDC_EDIT4, m_fP2); DDX_Text(pDX, IDC_EDIT3, m_fP3); DDX_Text(pDX, IDC_EDIT5, m_fP4); DDX_Text(pDX, IDC_EDIT6, m_fP5); DDX_Text(pDX, IDC_EDIT1, m_fP6); DDX_Text(pDX, IDC_EDIT2, m_fMinSize); DDX_Radio(pDX, IDC_RADIO1, m_nPos1); DDX_Radio(pDX, IDC_RADIO8, m_nPos2); DDX_Text(pDX, IDC_EDIT16, m_fW2); DDX_Text(pDX, IDC_EDIT17, m_fH2); DDX_Text(pDX, IDC_EDIT18, m_fW3); DDX_Text(pDX, IDC_EDIT19, m_fH3); DDV_MinMaxFloat(pDX, m_fP1, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fP2, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fP3, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fP4, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fP5, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fP6, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fMinSize, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fW2, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fH2, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fW3, .0001f, 1000000.f); DDV_MinMaxFloat(pDX, m_fH3, .0001f, 1000000.f); } void CBZJCDlg::initLst() { m_LstCtrl.InsertColumn(0, _T("舱室序号"), LVCFMT_LEFT, 100); m_LstCtrl.InsertColumn(1, _T("距舱室左侧距离(毫米)"), LVCFMT_LEFT, 150); m_LstCtrl.InsertColumn(2, _T("踏步高度(毫米)"), LVCFMT_LEFT, 110); m_LstCtrl.InsertColumn(3, _T("踏步宽度(毫米)"), LVCFMT_LEFT, 110); m_LstCtrl.InsertColumn(4, _T("坡道宽(毫米)"), LVCFMT_LEFT, 100); m_LstCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT); } void CBZJCDlg::RefreshLstCtrl() { m_LstCtrl.DeleteAllItems(); AecDbEarthWorm worm; worm.SetCrossSectionScr(m_sCrossSectionScr); int count = worm.GetRoomCount(); int nRow(0); for (int i = 20, j = 0; i < 20 + 4 * count && i < 64; ++j) { nRow = m_LstCtrl.InsertItem(0, TypeConvert::i2s(j + 1)); m_LstCtrl.SetItemText(nRow, 1, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++]))); m_LstCtrl.SetItemText(nRow, 2, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++]))); m_LstCtrl.SetItemText(nRow, 3, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++]))); m_LstCtrl.SetItemText(nRow, 4, TypeConvert::f2s(AS_M2MM(m_data.fNodeDef[i++]))); } } void CBZJCDlg::OnBnClickedOk() { UpdateData(TRUE); if (m_fP1 < m_fMinSize) { CString err(_T("")); err.Format(_T("P1 不能小于 %.2f"), m_fMinSize); AfxMessageBox(err); return; } m_data.fNodeDef[0] = AS_MUNITF(m_fP1); m_data.fNodeDef[3] = AS_MUNITF(m_fP3); m_data.fNodeDef[4] = AS_MUNITF(m_fP3); m_data.fNodeDef[8] = AS_MUNITF(m_fP6); m_data.fNodeDef[9] = AS_MUNITF(m_fP2); m_data.fNodeDef[10] = AS_MUNITF(m_fP4); m_data.fNodeDef[12] = AS_MUNITF(m_fP5); m_data.fNodeDef[14] = m_nPos1; m_data.fNodeDef[15] = AS_MUNITF(m_fW2); m_data.fNodeDef[16] = AS_MUNITF(m_fH2); m_data.fNodeDef[17] = m_nPos2; m_data.fNodeDef[18] = AS_MUNITF(m_fW3); m_data.fNodeDef[19] = AS_MUNITF(m_fH3); CBaseDialog::OnOK(); } void CBZJCDlg::OnNMDblclkList1(NMHDR *pNMHDR, LRESULT *pResult) { OnBnClickedModify(); *pResult = 0; } void CBZJCDlg::OnBnClickedModify() { POSITION ps = m_LstCtrl.GetFirstSelectedItemPosition(); int nRet = m_LstCtrl.GetNextSelectedItem(ps); if (nRet == -1) { AfxMessageBox(_T("请选择一行数据。")); return; } CString sL = m_LstCtrl.GetItemText(nRet, 1); CString sH = m_LstCtrl.GetItemText(nRet, 2); CString sW1 = m_LstCtrl.GetItemText(nRet, 3); CString sW2 = m_LstCtrl.GetItemText(nRet, 4); CJcxcXgpdDLG dlg; dlg.m_fL = TypeConvert::s2f(sL); dlg.m_fH = TypeConvert::s2f(sH); dlg.m_fW1 = TypeConvert::s2f(sW1); dlg.m_fW2 = TypeConvert::s2f(sW2); dlg.DoModal(); int idx = 20 + 4 * nRet; m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fL); m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fH); m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fW1); m_data.fNodeDef[idx++] = AS_MUNITF(dlg.m_fW2); RefreshLstCtrl(); } BEGIN_MESSAGE_MAP(CBZJCDlg, CBaseDialog) ON_BN_CLICKED(IDOK, &CBZJCDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON4, &CBZJCDlg::OnBnClickedModify) ON_NOTIFY(NM_DBLCLK, IDC_LIST1, &CBZJCDlg::OnNMDblclkList1) END_MESSAGE_MAP() BOOL CBZJCDlg::OnInitDialog() { CBaseDialog::OnInitDialog(); m_fP1 = AS_M2MM(m_data.fNodeDef[0]); m_fP3 = AS_M2MM(m_data.fNodeDef[3]); m_fP3 = AS_M2MM(m_data.fNodeDef[4]); m_fP6 = AS_M2MM(m_data.fNodeDef[8]); m_fP2 = AS_M2MM(m_data.fNodeDef[9]); m_fP4 = AS_M2MM(m_data.fNodeDef[10]); m_fP5 = AS_M2MM(m_data.fNodeDef[12]); m_nPos1 = (int)m_data.fNodeDef[14]; m_fW2 = AS_M2MM(m_data.fNodeDef[15]); m_fH2 = AS_M2MM(m_data.fNodeDef[16]); m_nPos2 = (int)m_data.fNodeDef[17]; m_fW3 = AS_M2MM(m_data.fNodeDef[18]); m_fH3 = AS_M2MM(m_data.fNodeDef[19]); initLst(); RefreshLstCtrl(); UpdateData(FALSE); return TRUE; }