1877f5f92SZhongYang #pragma once 2f5eefe2fSzhongyang219 #include "AudioCommon.h" 32a4f25ddSzhongyang219 #include "ListCtrlEx.h" 4f5eefe2fSzhongyang219 #include "Common.h" 564f8684dSzhongyang219 #include "TabDlg.h" 6f5eefe2fSzhongyang219 7f5eefe2fSzhongyang219 8877f5f92SZhongYang // CFindDlg 对话框 9f5eefe2fSzhongyang219 1064f8684dSzhongyang219 class CFindDlg : public CTabDlg 11f5eefe2fSzhongyang219 { 12f5eefe2fSzhongyang219 DECLARE_DYNAMIC(CFindDlg) 13f5eefe2fSzhongyang219 14f5eefe2fSzhongyang219 public: 15877f5f92SZhongYang CFindDlg(CWnd* pParent = NULL); // 标准构造函数 16f5eefe2fSzhongyang219 virtual ~CFindDlg(); 17f5eefe2fSzhongyang219 18f5eefe2fSzhongyang219 //wstring m_config_path; 19f5eefe2fSzhongyang219 20e8eaa7abSlrisora // 根据多选索引m_find_result从m_find_result查找歌曲放入songs 21e8eaa7abSlrisora void GetSongsSelected(vector<SongInfo>& songs) const; 22f5eefe2fSzhongyang219 void SaveConfig(); 23f5eefe2fSzhongyang219 void LoadConfig(); 24f5eefe2fSzhongyang219 25877f5f92SZhongYang // 对话框数据 26f5eefe2fSzhongyang219 #ifdef AFX_DESIGN_TIME 27f5eefe2fSzhongyang219 enum { IDD = IDD_FIND_DIALOG }; 28f5eefe2fSzhongyang219 #endif 29f5eefe2fSzhongyang219 30f5eefe2fSzhongyang219 protected: 313b6b1eeaSZhong Yang enum ColumeIndex 323b6b1eeaSZhong Yang { 333b6b1eeaSZhong Yang COL_INDEX = 0, 343b6b1eeaSZhong Yang COL_FILE_NAME, 353b6b1eeaSZhong Yang COL_TITLE, 363b6b1eeaSZhong Yang COL_ARTIST, 373b6b1eeaSZhong Yang COL_ALBUM, 383b6b1eeaSZhong Yang COL_PATH, 393b6b1eeaSZhong Yang }; 40f5eefe2fSzhongyang219 41877f5f92SZhongYang wstring m_key_word; //查找的字符串 42877f5f92SZhongYang vector<SongInfo> m_find_result; //储存所有播放列表的查找结果 43f5eefe2fSzhongyang219 44877f5f92SZhongYang CListCtrlEx m_find_result_list; //查找结果控件 45877f5f92SZhongYang int m_item_selected{ -1 }; //鼠标选中的项目序号 46e8eaa7abSlrisora vector<int> m_items_selected; // 多选列表 47f5eefe2fSzhongyang219 48f5eefe2fSzhongyang219 CButton m_find_file_check; 49f5eefe2fSzhongyang219 CButton m_find_title_check; 50f5eefe2fSzhongyang219 CButton m_find_artist_check; 51f5eefe2fSzhongyang219 CButton m_find_album_check; 52f5eefe2fSzhongyang219 53e8eaa7abSlrisora bool m_find_current_playlist{ true }; //如果查找范围为当前播放列表(设置情况),则为true,如果是所有播放列表,则为false 54f5eefe2fSzhongyang219 bool m_find_file{ true }; 55f5eefe2fSzhongyang219 bool m_find_title{ true }; 56f5eefe2fSzhongyang219 bool m_find_artist{ true }; 57f5eefe2fSzhongyang219 bool m_find_album{ true }; 58f5eefe2fSzhongyang219 59877f5f92SZhongYang int m_find_option_data{}; //保存查找选项的数据,用每一个bit位表示每个查找选项是否选中 60f5eefe2fSzhongyang219 611a0bed10Szhongyang219 CString m_selected_string; 621a0bed10Szhongyang219 63*9cffa0dfSzhongyang219 virtual void OnTabEntered() override; 646ff78c2aSlrisora virtual bool InitializeControls() override; 65877f5f92SZhongYang virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 66f5eefe2fSzhongyang219 void ShowFindResult(); 671a0bed10Szhongyang219 void ShowFindInfo(); 68877f5f92SZhongYang bool _OnAddToNewPlaylist(std::wstring& playlist_path); //执行添加到新建播放列表命令,成功返回true,playlist_path用于接收新播放列表的路径 69877f5f92SZhongYang static UINT ViewOnlineThreadFunc(LPVOID lpParam); //执行在线查看的线程函数 7064f8684dSzhongyang219 //向父窗口发送消息以更新“播放选中”按钮的状态 7164f8684dSzhongyang219 void SetPlaySelectedEnable(bool enable); 723b6b1eeaSZhong Yang 731a0bed10Szhongyang219 public: 741a0bed10Szhongyang219 void ClearFindResult(); 75f5eefe2fSzhongyang219 76f5eefe2fSzhongyang219 DECLARE_MESSAGE_MAP() 77f5eefe2fSzhongyang219 78f5eefe2fSzhongyang219 afx_msg void OnEnChangeFindEdit(); 79f5eefe2fSzhongyang219 afx_msg void OnNMClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 80f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindButton(); 81f5eefe2fSzhongyang219 virtual BOOL OnInitDialog(); 82f5eefe2fSzhongyang219 afx_msg void OnNMDblclkFindList(NMHDR *pNMHDR, LRESULT *pResult); 83f5eefe2fSzhongyang219 virtual BOOL PreTranslateMessage(MSG* pMsg); 84f5eefe2fSzhongyang219 public: 85f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindFileCheck(); 86f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindTitleCheck(); 87f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindArtistCheck(); 88f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindAlbumCheck(); 891a0bed10Szhongyang219 afx_msg void OnBnClickedFindCurrentPlaylistRadio(); 901a0bed10Szhongyang219 afx_msg void OnBnClickedFindAllPlaylistRadio(); 911a0bed10Szhongyang219 afx_msg void OnSize(UINT nType, int cx, int cy); 9232c6db59Szhongyang afx_msg void OnPlayItem(); 9332c6db59Szhongyang afx_msg void OnExploreTrack(); 941a0bed10Szhongyang219 afx_msg void OnNMRClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 9532c6db59Szhongyang afx_msg void OnCopyText(); 9632c6db59Szhongyang afx_msg void OnPlayItemInFolderMode(); 9732c6db59Szhongyang afx_msg void OnAddToNewPlaylist(); 9832c6db59Szhongyang afx_msg void OnExploreOnline(); 9932c6db59Szhongyang afx_msg void OnFormatConvert(); 10032c6db59Szhongyang afx_msg void OnItemProperty(); 1013b6b1eeaSZhong Yang virtual void OnOK(); 1024b9b2989Slrisora afx_msg void OnAddToNewPlaylistAndPlay(); 1033b6b1eeaSZhong Yang private: 104b4eab87cSzhongyang public: 105b4eab87cSzhongyang afx_msg void OnInitMenu(CMenu* pMenu); 106ee1527dbSzhongyang virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); 10767c5a5b1Szhongyang219 afx_msg void OnDeleteFromDisk(); 108550e940dSlrisora afx_msg void OnPlayAsNext(); 109f5eefe2fSzhongyang219 }; 110