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 22e8eaa7abSlrisora // 根据多选索引m_find_result从m_find_result查找歌曲放入songs 23e8eaa7abSlrisora void GetSongsSelected(vector<SongInfo>& songs) const; 24f5eefe2fSzhongyang219 void SaveConfig(); 25f5eefe2fSzhongyang219 void LoadConfig(); 26f5eefe2fSzhongyang219 27877f5f92SZhongYang // 对话框数据 28f5eefe2fSzhongyang219 #ifdef AFX_DESIGN_TIME 29f5eefe2fSzhongyang219 enum { IDD = IDD_FIND_DIALOG }; 30f5eefe2fSzhongyang219 #endif 31f5eefe2fSzhongyang219 32f5eefe2fSzhongyang219 protected: 333b6b1eeaSZhong Yang enum ColumeIndex 343b6b1eeaSZhong Yang { 353b6b1eeaSZhong Yang COL_INDEX = 0, 363b6b1eeaSZhong Yang COL_FILE_NAME, 373b6b1eeaSZhong Yang COL_TITLE, 383b6b1eeaSZhong Yang COL_ARTIST, 393b6b1eeaSZhong Yang COL_ALBUM, 403b6b1eeaSZhong Yang COL_PATH, 413b6b1eeaSZhong Yang }; 42f5eefe2fSzhongyang219 43877f5f92SZhongYang wstring m_key_word; //查找的字符串 44877f5f92SZhongYang vector<SongInfo> m_find_result; //储存所有播放列表的查找结果 45f5eefe2fSzhongyang219 46877f5f92SZhongYang CListCtrlEx m_find_result_list; //查找结果控件 47877f5f92SZhongYang int m_item_selected{ -1 }; //鼠标选中的项目序号 48e8eaa7abSlrisora vector<int> m_items_selected; // 多选列表 49f5eefe2fSzhongyang219 50f5eefe2fSzhongyang219 CButton m_find_file_check; 51f5eefe2fSzhongyang219 CButton m_find_title_check; 52f5eefe2fSzhongyang219 CButton m_find_artist_check; 53f5eefe2fSzhongyang219 CButton m_find_album_check; 54f5eefe2fSzhongyang219 55e8eaa7abSlrisora bool m_find_current_playlist{ true }; //如果查找范围为当前播放列表(设置情况),则为true,如果是所有播放列表,则为false 56f5eefe2fSzhongyang219 bool m_find_file{ true }; 57f5eefe2fSzhongyang219 bool m_find_title{ true }; 58f5eefe2fSzhongyang219 bool m_find_artist{ true }; 59f5eefe2fSzhongyang219 bool m_find_album{ true }; 60f5eefe2fSzhongyang219 61877f5f92SZhongYang int m_find_option_data{}; //保存查找选项的数据,用每一个bit位表示每个查找选项是否选中 62f5eefe2fSzhongyang219 631a0bed10Szhongyang219 CString m_selected_string; 641a0bed10Szhongyang219 65d5347edbSZhong Yang virtual CString GetDialogName() const override; 666ff78c2aSlrisora virtual bool InitializeControls() override; 67877f5f92SZhongYang virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 68f5eefe2fSzhongyang219 void ShowFindResult(); 691a0bed10Szhongyang219 void ShowFindInfo(); 70877f5f92SZhongYang bool _OnAddToNewPlaylist(std::wstring& playlist_path); //执行添加到新建播放列表命令,成功返回true,playlist_path用于接收新播放列表的路径 71877f5f92SZhongYang static UINT ViewOnlineThreadFunc(LPVOID lpParam); //执行在线查看的线程函数 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(); 102*4b9b2989Slrisora 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