1 #pragma once 2 #include "BaseDialog.h" 3 #include "ListCtrlEx.h" 4 5 // CListenTimeStatisticsDlg 对话框 6 7 class CListenTimeStatisticsDlg : public CBaseDialog 8 { 9 DECLARE_DYNAMIC(CListenTimeStatisticsDlg) 10 11 public: 12 CListenTimeStatisticsDlg(CWnd* pParent = nullptr); // 标准构造函数 13 virtual ~CListenTimeStatisticsDlg(); 14 15 // 对话框数据 16 #ifdef AFX_DESIGN_TIME 17 enum { IDD = IDD_LISTEN_TIME_STATISTICS_DLG }; 18 #endif 19 20 protected: 21 enum ColumeIndex 22 { 23 COL_INDEX = 0, 24 COL_TRACK, 25 COL_PATH, 26 COL_TOTAL_TIME, 27 COL_LENGTH, 28 COL_TIMES, 29 }; 30 31 struct ListItem 32 { 33 wstring name; 34 wstring path; 35 Time total_time; 36 Time length; 37 double times; 38 }; 39 40 protected: 41 CListCtrlEx m_list_ctrl; 42 43 vector<ListItem> m_data_list; 44 45 protected: 46 virtual CString GetDialogName() const override; 47 virtual bool InitializeControls() override; 48 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 49 50 void ShowData(bool size_changed = true); 51 ListItem SongInfoToListItem(const SongInfo& song); 52 53 DECLARE_MESSAGE_MAP() 54 public: 55 virtual BOOL OnInitDialog(); 56 afx_msg void OnBnClickedExportButton(); 57 afx_msg void OnBnClickedClearButton(); 58 afx_msg void OnHdnItemclickList1(NMHDR *pNMHDR, LRESULT *pResult); 59 }; 60