1 #pragma once 2 3 // CTagEditDlg 对话框 4 5 class CTagEditDlg : public CDialog 6 { 7 DECLARE_DYNAMIC(CTagEditDlg) 8 9 public: 10 struct ItemInfo 11 { 12 wstring file_path; 13 SongInfo song_info; 14 bool operator==(const ItemInfo& a) const 15 { 16 if (!a.song_info.is_cue) 17 return file_path == a.file_path; 18 else 19 return (file_path == a.file_path && song_info.track == a.song_info.track); 20 } 21 }; 22 23 24 CTagEditDlg(vector<ItemInfo>& file_list, int index, CWnd* pParent = nullptr); // 标准构造函数 25 virtual ~CTagEditDlg(); 26 27 // 对话框数据 28 #ifdef AFX_DESIGN_TIME 29 enum { IDD = IDD_TAG_EDIT_DIALOG }; 30 #endif 31 32 protected: 33 vector<ItemInfo>& m_file_list; 34 int m_index; 35 36 CComboBox m_genre_combo; 37 38 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 39 40 void ShowInfo(); 41 42 DECLARE_MESSAGE_MAP() 43 public: 44 virtual BOOL OnInitDialog(); 45 afx_msg void OnBnClickedPreviousButton(); 46 afx_msg void OnBnClickedNextButton(); 47 afx_msg void OnBnClickedSaveButton(); 48 }; 49