xref: /MusicPlayer2/MusicPlayer2/SelectItemDlg.h (revision a87de17200448923cd61634f894b94d41827fa4c)
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