xref: /MusicPlayer2/MusicPlayer2/CListenTimeStatisticsDlg.h (revision 6ff78c2af22a2540d4da0cd487a360b3fffc6e91)
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