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