#include "stdafx.h" #include "CVariableEditDlg2.h" #include "resource.h" IMPLEMENT_DYNAMIC(CVariableEditDlg2, CDialogEx) CVariableEditDlg2::CVariableEditDlg2(const CString& title, int varId, const CString& type, const CString& name, const CString& remark, CWnd* pParent) : CDialogEx(IDD_DIALOG_VARIABLE_EDIT2, pParent), m_strTitle(title), m_varId(varId), m_strType(type), m_strName(name), m_strRemark(remark) { } CVariableEditDlg2::~CVariableEditDlg2() { } void CVariableEditDlg2::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT_VAR_ID, m_editId); DDX_Control(pDX, IDC_COMBO_VAR_TYPE, m_cbType); DDX_Control(pDX, IDC_EDIT_VAR_NAME, m_editName); DDX_Control(pDX, IDC_EDIT_VAR_REMARK, m_editRemark); } BEGIN_MESSAGE_MAP(CVariableEditDlg2, CDialogEx) END_MESSAGE_MAP() BOOL CVariableEditDlg2::OnInitDialog() { CDialogEx::OnInitDialog(); SetWindowText(m_strTitle); CString strId; strId.Format(_T("%d"), m_varId); m_editId.SetWindowText(strId); m_editId.SetReadOnly(TRUE); m_cbType.ResetContent(); const TCHAR* fmts[] = { _T("U1"), _T("U2"), _T("I2"), _T("A20"), _T("A50"), _T("L") }; for (auto f : fmts) { m_cbType.AddString(f); } if (!m_strType.IsEmpty()) { m_cbType.SelectString(-1, m_strType); } else { m_cbType.SetCurSel(0); } m_editName.SetWindowText(m_strName); m_editRemark.SetWindowText(m_strRemark); return TRUE; } void CVariableEditDlg2::OnOK() { CString name, fmt, remark; m_editName.GetWindowText(name); m_cbType.GetWindowText(fmt); m_editRemark.GetWindowText(remark); fmt.MakeUpper(); if (name.IsEmpty()) { AfxMessageBox(_T("名称不能为空")); return; } if (fmt.IsEmpty()) { AfxMessageBox(_T("类型不能为空")); return; } if (fmt != _T("U1") && fmt != _T("U2") && fmt != _T("I2") && fmt != _T("A20") && fmt != _T("A50") && fmt != _T("L")) { AfxMessageBox(_T("类型必须是 U1/U2/I2/A20/A50/L")); return; } m_strName = name; m_strType = fmt; m_strRemark = remark; CDialogEx::OnOK(); }