1877f5f92SZhongYang #pragma once 2f5eefe2fSzhongyang219 #include "afxcmn.h" 3f5eefe2fSzhongyang219 #include "AudioCommon.h" 4f5eefe2fSzhongyang219 #include "afxwin.h" 52a4f25ddSzhongyang219 #include "ListCtrlEx.h" 6f5eefe2fSzhongyang219 #include "Common.h" 7d5347edbSZhong Yang #include "BaseDialog.h" 8f5eefe2fSzhongyang219 9f5eefe2fSzhongyang219 10877f5f92SZhongYang // CFindDlg 对话框 11f5eefe2fSzhongyang219 12d5347edbSZhong Yang class CFindDlg : public CBaseDialog 13f5eefe2fSzhongyang219 { 14f5eefe2fSzhongyang219 DECLARE_DYNAMIC(CFindDlg) 15f5eefe2fSzhongyang219 16f5eefe2fSzhongyang219 public: 17877f5f92SZhongYang CFindDlg(CWnd* pParent = NULL); // 标准构造函数 18f5eefe2fSzhongyang219 virtual ~CFindDlg(); 19f5eefe2fSzhongyang219 20f5eefe2fSzhongyang219 //wstring m_config_path; 21f5eefe2fSzhongyang219 22b4eab87cSzhongyang //int GetSelectedTrack() const; 23b4eab87cSzhongyang bool IsFindCurrentPlaylist() const; 24*e8eaa7abSlrisora // 根据多选索引m_find_result从m_find_result查找歌曲放入songs 25*e8eaa7abSlrisora void GetSongsSelected(vector<SongInfo>& songs) const; 26f5eefe2fSzhongyang219 void SaveConfig(); 27f5eefe2fSzhongyang219 void LoadConfig(); 28f5eefe2fSzhongyang219 29877f5f92SZhongYang // 对话框数据 30f5eefe2fSzhongyang219 #ifdef AFX_DESIGN_TIME 31f5eefe2fSzhongyang219 enum { IDD = IDD_FIND_DIALOG }; 32f5eefe2fSzhongyang219 #endif 33f5eefe2fSzhongyang219 34f5eefe2fSzhongyang219 protected: 353b6b1eeaSZhong Yang enum ColumeIndex 363b6b1eeaSZhong Yang { 373b6b1eeaSZhong Yang COL_INDEX = 0, 383b6b1eeaSZhong Yang COL_FILE_NAME, 393b6b1eeaSZhong Yang COL_TITLE, 403b6b1eeaSZhong Yang COL_ARTIST, 413b6b1eeaSZhong Yang COL_ALBUM, 423b6b1eeaSZhong Yang COL_PATH, 433b6b1eeaSZhong Yang }; 44f5eefe2fSzhongyang219 45877f5f92SZhongYang wstring m_key_word; //查找的字符串 46877f5f92SZhongYang vector<SongInfo> m_find_result; //储存所有播放列表的查找结果 47f5eefe2fSzhongyang219 48877f5f92SZhongYang CListCtrlEx m_find_result_list; //查找结果控件 49877f5f92SZhongYang int m_item_selected{ -1 }; //鼠标选中的项目序号 50*e8eaa7abSlrisora vector<int> m_items_selected; // 多选列表 51f5eefe2fSzhongyang219 52f5eefe2fSzhongyang219 CButton m_find_file_check; 53f5eefe2fSzhongyang219 CButton m_find_title_check; 54f5eefe2fSzhongyang219 CButton m_find_artist_check; 55f5eefe2fSzhongyang219 CButton m_find_album_check; 56f5eefe2fSzhongyang219 57*e8eaa7abSlrisora bool m_find_current_playlist{ true }; //如果查找范围为当前播放列表(设置情况),则为true,如果是所有播放列表,则为false 58*e8eaa7abSlrisora bool m_result_in_current_playlist{ true }; //查找结果是否为当前播放列表(结果情况) 59f5eefe2fSzhongyang219 bool m_find_file{ true }; 60f5eefe2fSzhongyang219 bool m_find_title{ true }; 61f5eefe2fSzhongyang219 bool m_find_artist{ true }; 62f5eefe2fSzhongyang219 bool m_find_album{ true }; 63f5eefe2fSzhongyang219 64877f5f92SZhongYang int m_find_option_data{}; //保存查找选项的数据,用每一个bit位表示每个查找选项是否选中 65f5eefe2fSzhongyang219 661a0bed10Szhongyang219 CString m_selected_string; 671a0bed10Szhongyang219 68d5347edbSZhong Yang virtual CString GetDialogName() const override; 69877f5f92SZhongYang virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 70f5eefe2fSzhongyang219 void ShowFindResult(); 711a0bed10Szhongyang219 void ShowFindInfo(); 72877f5f92SZhongYang bool _OnAddToNewPlaylist(std::wstring& playlist_path); //执行添加到新建播放列表命令,成功返回true,playlist_path用于接收新播放列表的路径 73877f5f92SZhongYang static UINT ViewOnlineThreadFunc(LPVOID lpParam); //执行在线查看的线程函数 743b6b1eeaSZhong Yang 751a0bed10Szhongyang219 public: 761a0bed10Szhongyang219 void ClearFindResult(); 77f5eefe2fSzhongyang219 78f5eefe2fSzhongyang219 DECLARE_MESSAGE_MAP() 79f5eefe2fSzhongyang219 80f5eefe2fSzhongyang219 afx_msg void OnEnChangeFindEdit(); 81f5eefe2fSzhongyang219 afx_msg void OnNMClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 82f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindButton(); 83f5eefe2fSzhongyang219 virtual BOOL OnInitDialog(); 84f5eefe2fSzhongyang219 afx_msg void OnNMDblclkFindList(NMHDR *pNMHDR, LRESULT *pResult); 85f5eefe2fSzhongyang219 virtual BOOL PreTranslateMessage(MSG* pMsg); 86f5eefe2fSzhongyang219 public: 87f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindFileCheck(); 88f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindTitleCheck(); 89f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindArtistCheck(); 90f5eefe2fSzhongyang219 afx_msg void OnBnClickedFindAlbumCheck(); 911a0bed10Szhongyang219 afx_msg void OnBnClickedFindCurrentPlaylistRadio(); 921a0bed10Szhongyang219 afx_msg void OnBnClickedFindAllPlaylistRadio(); 931a0bed10Szhongyang219 afx_msg void OnSize(UINT nType, int cx, int cy); 9432c6db59Szhongyang afx_msg void OnPlayItem(); 9532c6db59Szhongyang afx_msg void OnExploreTrack(); 961a0bed10Szhongyang219 afx_msg void OnNMRClickFindList(NMHDR *pNMHDR, LRESULT *pResult); 9732c6db59Szhongyang afx_msg void OnCopyText(); 9832c6db59Szhongyang afx_msg void OnPlayItemInFolderMode(); 9932c6db59Szhongyang afx_msg void OnAddToNewPlaylist(); 10032c6db59Szhongyang afx_msg void OnExploreOnline(); 10132c6db59Szhongyang afx_msg void OnFormatConvert(); 10232c6db59Szhongyang afx_msg void OnItemProperty(); 1033b6b1eeaSZhong Yang virtual void OnOK(); 1043b6b1eeaSZhong Yang afx_msg void OnAddToNewPalylistAndPlay(); 1053b6b1eeaSZhong Yang private: 106b4eab87cSzhongyang public: 107b4eab87cSzhongyang afx_msg void OnInitMenu(CMenu* pMenu); 108ee1527dbSzhongyang virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); 10967c5a5b1Szhongyang219 afx_msg void OnDeleteFromDisk(); 110f5eefe2fSzhongyang219 }; 111