#include "stdafx.h" #include "TQBGDlg.h" #include "UITools.h" namespace { void split(LPCTSTR pszSrc, TCHAR sp, std::vector &vec) { if (!pszSrc) return; vec.clear(); CString src(pszSrc); CString oneString(_T("")); TCHAR ch; for (int i = 0; i < src.GetLength(); ++i) { ch = src[i]; if (ch == sp) { if (oneString.IsEmpty()) continue; else { vec.push_back(oneString); oneString.Empty(); } } else oneString += ch; } if (!oneString.IsEmpty()) vec.push_back(oneString); } } IMPLEMENT_DYNAMIC(CTQBGDlg, CDialog) CTQBGDlg::CTQBGDlg(const double &dMax, const double &dMin, CWnd* pParent /*=NULL*/) : CDialog(IDD_TQBG_DLG, pParent) , m_iSpace(200) , m_dStart(dMin) , m_dEnd(dMax) , m_dMin(dMin) , m_dMax(dMax) { UIDataCache::Read(_T("%i%d%d%d%d"), _T("CTQBGDlg"), &m_iSpace, &m_dStart, &m_dEnd, &m_dMin, &m_dMax); } CTQBGDlg::~CTQBGDlg() { } void CTQBGDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_iSpace); DDV_MinMaxInt(pDX, m_iSpace, 1, 99999999); DDX_Text(pDX, IDC_EDIT3, m_dStart); DDV_MinMaxDouble(pDX, m_dStart, 0, 99999999999.); DDX_Text(pDX, IDC_EDIT4, m_dEnd); DDV_MinMaxDouble(pDX, m_dEnd, 0, 999999999999.); } BOOL CTQBGDlg::OnInitDialog() { UpdateData(False); return CDialog::OnInitDialog(); } BEGIN_MESSAGE_MAP(CTQBGDlg, CDialog) ON_BN_CLICKED(IDOK, &CTQBGDlg::OnBnClickedOk) END_MESSAGE_MAP() void CTQBGDlg::OnBnClickedOk() { UpdateData(TRUE); UIDataCache::Write(_T("%i%d%d%d%d"), _T("CTQBGDlg"), &m_iSpace, &m_dStart, &m_dEnd, &m_dMin, &m_dMax); if (m_dStart >= m_dEnd) { AfxMessageBox(_T("起始距离应该小于结束距离。")); return; } if (m_dStart < m_dMin) { AfxMessageBox(_T("起始距离应该大于桩号文件中最小桩号。")); return; } if (m_dEnd > m_dMax) { AfxMessageBox(_T("结束距离应该小于桩号文件中最大桩号。")); return; } CDialog::OnOK(); }