#include "stdafx.h" #include "CXSHSIZEDlg.h" IMPLEMENT_DYNAMIC(CXSHSIZEDlg, CDialog) CXSHSIZEDlg::CXSHSIZEDlg(std::vector &vec, CWnd* pParent) : CDialog(IDD_DLG_XSHSize, pParent) , m_iXHSL(0) , m_iXHSW(0) , m_sizes(vec) { } CXSHSIZEDlg::~CXSHSIZEDlg() { } void CXSHSIZEDlg::DoDataExchange(CDataExchange* pDX) { DDX_Control(pDX, IDC_LIST_SIZE, m_ListBoxSize); DDX_Text(pDX, IDC_EDIT_LEN, m_iXHSL); DDX_Text(pDX, IDC_EDIT_WIDTH, m_iXHSW); } BOOL CXSHSIZEDlg::OnInitDialog() { CDialog::OnInitDialog(); refreshList(); UpdateData(FALSE); return TRUE; } BEGIN_MESSAGE_MAP(CXSHSIZEDlg, CDialog) ON_BN_CLICKED(IDOK, &CXSHSIZEDlg::OnBnClickedOk) ON_BN_CLICKED(IDC_BTN_ADD, &CXSHSIZEDlg::OnBnClickedAdd) ON_BN_CLICKED(IDC_BTN_DELETE, &CXSHSIZEDlg::OnBnClickedDelete) END_MESSAGE_MAP() void CXSHSIZEDlg::OnBnClickedOk() { UpdateData(); CDialog::OnOK(); } void CXSHSIZEDlg::OnBnClickedAdd() { UpdateData(TRUE); CString str; str.Format(_T("%d*%d"), m_iXHSL, m_iXHSW); m_sizes.push_back(str); refreshList(); } void CXSHSIZEDlg::OnBnClickedDelete() { // 得到当前选中索引,得到itor // m_sizes.erase(); int nSel = m_ListBoxSize.GetCurSel(); std::vector::iterator it = m_sizes.erase(m_sizes.begin() + nSel); refreshList(); } void CXSHSIZEDlg::refreshList() { // 先清空 m_ListBoxSize.ResetContent(); for (size_t i(0); i < m_sizes.size(); ++i) { m_ListBoxSize.AddString(m_sizes.at(i)); } }