1 #pragma once 2 #include "BaseDialog.h" 3 #include "EditableListBox.h" 4 5 // CEditStringListDlg 对话框 6 7 class CEditStringListDlg : public CBaseDialog 8 { 9 DECLARE_DYNAMIC(CEditStringListDlg) 10 11 public: 12 CEditStringListDlg(vector<wstring>& items, CWnd* pParent = nullptr); // 标准构造函数 13 virtual ~CEditStringListDlg(); 14 15 void SetTitle(LPCTSTR title); 16 void SetDlgIcon(IconMgr::IconType icon_type); 17 18 // 对话框数据 19 #ifdef AFX_DESIGN_TIME 20 enum { IDD = IDD_SELECT_ITEM_DIALOG }; 21 #endif 22 23 private: 24 CEditableListBox m_list_ctrl; 25 CString m_title; 26 vector<wstring>& m_items; 27 IconMgr::IconType m_icon_type{ IconMgr::IconType::IT_NO_ICON }; 28 29 protected: 30 virtual CString GetDialogName() const override; 31 virtual bool InitializeControls() override; 32 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 33 34 DECLARE_MESSAGE_MAP() 35 public: 36 virtual BOOL OnInitDialog(); 37 virtual void OnOK(); 38 }; 39