1 #pragma once 2 #include "TabDlg.h" 3 #include "IPropertyTabDlg.h" 4 #include "EditEx.h" 5 #include "MyComboBox.h" 6 7 // CPropertyTabDlg 对话框 8 9 class CPropertyTabDlg : public CTabDlg, public IPropertyTabDlg 10 { 11 DECLARE_DYNAMIC(CPropertyTabDlg) 12 13 public: 14 CPropertyTabDlg(vector<SongInfo>& all_song_info, int& index, CWnd* pParent = NULL, bool read_only = false); // 标准构造函数 15 CPropertyTabDlg(vector<SongInfo>& song_info, CWnd* pParent = NULL); // 批量编辑 16 virtual ~CPropertyTabDlg(); 17 18 //int m_playing_index{}; //正在播放的曲目序号 19 //wstring m_lyric_name; 20 GetListRefresh()21 bool GetListRefresh() const { return m_list_refresh; } 22 23 // 对话框数据 24 #ifdef AFX_DESIGN_TIME 25 enum { IDD = IDD_PROPERTY_DIALOG }; 26 #endif 27 28 protected: 29 //const vector<wstring>& m_all_file_name; 30 int& m_index; //当前显示项目的曲目序号 31 vector<SongInfo>& m_all_song_info; 32 bool m_write_enable{ false }; //是否允许写入标签 33 bool m_modified{ false }; 34 bool m_genre_modified{ false }; 35 bool m_list_refresh{ false }; //用于判断窗口关闭后播放列表是否要刷新 36 int m_song_num{}; 37 bool m_read_only{}; 38 39 const bool m_batch_edit; 40 int m_no_use{}; 41 42 //控件变量 43 CEditEx m_file_name_edit; 44 CEditEx m_file_path_edit; 45 CEditEx m_file_type_edit; 46 CEditEx m_song_length_edit; 47 CEditEx m_file_size_edit; 48 CEditEx m_bit_rate_edit; 49 CEditEx m_title_edit; 50 CEditEx m_artist_edit; 51 CEditEx m_album_edit; 52 CEditEx m_track_edit; 53 CEditEx m_year_edit; 54 //CEditEx m_genre_edit; 55 CMyComboBox m_genre_combo; 56 CEditEx m_comment_edit; 57 CEditEx m_lyric_file_edit; 58 59 void ShowInfo(); 60 void SetEditReadOnly(bool read_only, bool is_cue); 61 void SetWreteEnable(); 62 void SetSaveBtnEnable(); 63 void ResetEditModified(); 64 65 virtual void OnTabEntered() override; //当标签切换到当前窗口时被调用 66 virtual bool InitializeControls() override; 67 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 68 69 void ModifyTagInfo(const SongInfo& song); 70 bool GetTagFromLyrics(SongInfo& song, SongInfo& result); 71 72 DECLARE_MESSAGE_MAP() 73 public: 74 virtual BOOL OnInitDialog(); 75 virtual void PagePrevious() override; 76 virtual void PageNext() override; 77 virtual BOOL PreTranslateMessage(MSG* pMsg); 78 afx_msg void OnEnChangeTitelEdit(); 79 afx_msg void OnEnChangeArtistEdit(); 80 afx_msg void OnEnChangeAlbumEdit(); 81 afx_msg void OnEnChangeTrackEdit(); 82 afx_msg void OnEnChangeYearEdit(); 83 afx_msg void OnEnChangeCommentEdit(); 84 //afx_msg void OnCbnEditchangeGenreCombo(); 85 virtual int SaveModified() override; 86 afx_msg void OnCbnSelchangeGenreCombo(); 87 //afx_msg void OnBnClickedButton3(); 88 afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt); 89 afx_msg void OnCbnEditchangeGenreCombo(); 90 afx_msg void OnBnClickedGetTagOnlineButton(); 91 protected: 92 afx_msg LRESULT OnPorpertyOnlineInfoAcquired(WPARAM wParam, LPARAM lParam); 93 public: 94 afx_msg void OnBnClickedGetTagFromLyricButton(); 95 afx_msg void OnBnClickedGetTagFromFileNameButton(); 96 }; 97