// WaterRationDlg.cpp : implementation file // #include "stdafx.h" #include "shs_outdoor.h" #include "WaterRationDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CWaterRationDlg dialog CWaterRationDlg::CWaterRationDlg(CWnd* pParent /*=NULL*/) : CDialog(CWaterRationDlg::IDD, pParent) { //{{AFX_DATA_INIT(CWaterRationDlg) m_radWaterPurpose = 0; //}}AFX_DATA_INIT } void CWaterRationDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CWaterRationDlg) DDX_Control(pDX, IDC_LIST_WATER_RATION, m_lstWaterRation); DDX_Radio(pDX, IDC_RADIO_PURPOSE, m_radWaterPurpose); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CWaterRationDlg, CDialog) //{{AFX_MSG_MAP(CWaterRationDlg) ON_NOTIFY(NM_DBLCLK, IDC_LIST_WATER_RATION, OnDblclkListWaterRation) ON_BN_CLICKED(IDC_RADIO_PURPOSE, OnRadioPurpose) ON_BN_CLICKED(IDC_RADIO_PURPOSE1, OnRadioPurpose1) ON_BN_CLICKED(IDC_RADIO_PURPOSE2, OnRadioPurpose2) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CWaterRationDlg message handlers BOOL CWaterRationDlg::OnInitDialog() { CDialog::OnInitDialog(); m_lstWaterRation.SetExtendedStyle(LVS_EX_FULLROWSELECT); m_lstWaterRation.InsertColumn (0, _T("用地代号"), LVCFMT_CENTER, 70); m_lstWaterRation.InsertColumn (1, _T("用地名称"), LVCFMT_CENTER, 170); m_lstWaterRation.InsertColumn (2, _T("用水量指标"), LVCFMT_CENTER, 80); UpdateDataRationList(); return TRUE; } void CWaterRationDlg::OnOK() { // 确定当前所选项 POSITION pos = m_lstWaterRation.GetFirstSelectedItemPosition(); int iCurSel = m_lstWaterRation.GetNextSelectedItem(pos); if (0 > iCurSel) return; CString csWaterRation = m_lstWaterRation.GetItemText(iCurSel, 2); m_csWaterRation = DefaultWaterRation(csWaterRation); CDialog::OnOK(); } CString CWaterRationDlg::DefaultWaterRation(CString csRationRange) { int idx = csRationRange.Find(_T("~")); if (-1 == idx) return _T(""); CString csTmp; csTmp = csRationRange.Left(idx); // min csRationRange.Delete(0, idx + 1); // max double dMidValue = 0.0; dMidValue = (_tstof(csTmp) + _tstof(csRationRange)) / 2; csTmp.Format(_T("%.2f"), dMidValue); return csTmp; } void CWaterRationDlg::OnDblclkListWaterRation(NMHDR* pNMHDR, LRESULT* pResult) { OnOK(); *pResult = 0; } void CWaterRationDlg::UpdateDataRationList() { UpdateData(); m_lstWaterRation.DeleteAllItems(); // 《城市给水工程规划规范》(GB 50282—98) switch (m_radWaterPurpose) { case 0: // 表2.2.5-2 单位公共设施用地用水量指标 m_lstWaterRation.InsertItem(0, _T("C")); m_lstWaterRation.SetItemText(0, 1, _T("商贸金融用地")); m_lstWaterRation.SetItemText(0, 2, _T("0.50~1.00")); m_lstWaterRation.InsertItem(1, _T("C")); m_lstWaterRation.SetItemText(1, 1, _T("体育、文化娱乐用地")); m_lstWaterRation.SetItemText(1, 2, _T("0.50~1.00")); m_lstWaterRation.InsertItem(2, _T("C")); m_lstWaterRation.SetItemText(2, 1, _T("旅馆、服务业用地")); m_lstWaterRation.SetItemText(2, 2, _T("1.00~1.50")); m_lstWaterRation.InsertItem(3, _T("C")); m_lstWaterRation.SetItemText(3, 1, _T("教育用地")); m_lstWaterRation.SetItemText(3, 2, _T("1.00~1.50")); m_lstWaterRation.InsertItem(4, _T("C")); m_lstWaterRation.SetItemText(4, 1, _T("医疗、休疗养用地")); m_lstWaterRation.SetItemText(4, 2, _T("1.00~1.50")); m_lstWaterRation.InsertItem(5, _T("C")); m_lstWaterRation.SetItemText(5, 1, _T("其他公共设施用地")); m_lstWaterRation.SetItemText(5, 2, _T("0.80~1.20")); break; case 1: // 表2.2.5-3 单位工业用地用水量指标 m_lstWaterRation.InsertItem(0, _T("M1")); m_lstWaterRation.SetItemText(0, 1, _T("一类工业用地")); m_lstWaterRation.SetItemText(0, 2, _T("1.20~2.00")); m_lstWaterRation.InsertItem(1, _T("M2")); m_lstWaterRation.SetItemText(1, 1, _T("二类工业用地")); m_lstWaterRation.SetItemText(1, 2, _T("2.00~3.50")); m_lstWaterRation.InsertItem(2, _T("M3")); m_lstWaterRation.SetItemText(2, 1, _T("三类工业用地")); m_lstWaterRation.SetItemText(2, 2, _T("3.00~5.00")); break; case 2: // 表2.2.5-4 单位其他用地用水量指标 m_lstWaterRation.InsertItem(0, _T("W")); m_lstWaterRation.SetItemText(0, 1, _T("仓储用地")); m_lstWaterRation.SetItemText(0, 2, _T("0.20~0.50")); m_lstWaterRation.InsertItem(1, _T("T")); m_lstWaterRation.SetItemText(1, 1, _T("对外交通用地")); m_lstWaterRation.SetItemText(1, 2, _T("0.30~0.60")); m_lstWaterRation.InsertItem(2, _T("S")); m_lstWaterRation.SetItemText(2, 1, _T("道路广场用地")); m_lstWaterRation.SetItemText(2, 2, _T("0.20~0.30")); m_lstWaterRation.InsertItem(3, _T("U")); m_lstWaterRation.SetItemText(3, 1, _T("市政公用设施用地")); m_lstWaterRation.SetItemText(3, 2, _T("0.25~0.50")); m_lstWaterRation.InsertItem(4, _T("G")); m_lstWaterRation.SetItemText(4, 1, _T("绿地")); m_lstWaterRation.SetItemText(4, 2, _T("0.10~0.30")); m_lstWaterRation.InsertItem(5, _T("D")); m_lstWaterRation.SetItemText(5, 1, _T("特殊用地")); m_lstWaterRation.SetItemText(5, 2, _T("0.50~0.90")); m_lstWaterRation.InsertItem(6, _T("C")); m_lstWaterRation.SetItemText(6, 1, _T("行政办公用地")); m_lstWaterRation.SetItemText(6, 2, _T("0.50~1.00")); break; default: break; } } void CWaterRationDlg::OnRadioPurpose() { UpdateDataRationList(); } void CWaterRationDlg::OnRadioPurpose1() { UpdateDataRationList(); } void CWaterRationDlg::OnRadioPurpose2() { UpdateDataRationList(); }