{"id":190,"date":"2009-09-04T00:20:25","date_gmt":"2009-09-03T16:20:25","guid":{"rendered":"http:\/\/115.29.108.60\/?p=190"},"modified":"2011-09-26T21:38:16","modified_gmt":"2011-09-26T13:38:16","slug":"musicplayer-v1-2%e6%96%b0%e5%a2%9e%e5%8a%9f%e8%83%bd","status":"publish","type":"post","link":"http:\/\/115.29.108.60\/?p=190","title":{"rendered":"MusicPlayer V1.2"},"content":{"rendered":"<p>\u4fee\u589eV1.1\u4e2d\u5df2\u77e5bug\uff1b<\/p>\n<p>\u81ea\u52a8\u64ad\u653e\u4e0b\u4e00\u9996\uff1b<\/p>\n<p>\u6700\u5c0f\u5316\u5230\u6258\u76d8\uff1b<\/p>\n<p>\u81ea\u52a8\u52a0\u8f7d\u548c\u4fdd\u5b58\u64ad\u653e\u5217\u8868\u3002<\/p>\n<p>\/\/\u8fde\u63a5\u5e93<br \/>\n\/\/mciSendString winmm.lib<br \/>\n\/\/COM ole32.lib<br \/>\n#include &lt;windows.h&gt;<br \/>\n#include &lt;windowsx.h&gt;<br \/>\n#include &lt;commctrl.h&gt;\/\/\u6eda\u52a8\u6761\u63a7\u5236\u65f6\u5305\u542b\u5934\u6587\u4ef6<br \/>\n#include &lt;objbase.h&gt;\/\/CoInitializeEx\u5305\u542b\u5934\u6587\u4ef6<br \/>\n#include &lt;shlobj.h&gt;\/\/\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846\u5305\u542b\u5934\u6587\u4ef6<br \/>\n#include &lt;stdio.h&gt;\/\/\u6587\u4ef6\u64cd\u4f5c<br \/>\n#include &#8220;main.h&#8221;<br \/>\n#include &#8220;dialogs.h&#8221;<br \/>\n#include &#8220;resource.h&#8221;<br \/>\n#include &#8220;rsrc.inc&#8221;<\/p>\n<p>#define WM_NOTIFYICON WM_USER+1<\/p>\n<p>TCHAR szFileName[100][MAX_PATH];\/\/\u64ad\u653e\u5217\u8868\uff0c\u5b58\u50a8\u6700\u5927\u503c100\u3002<br \/>\nint iNum = 0;\/\/\u97f3\u4e50\u6570<br \/>\nint iPlay = 0;\/\/\u64ad\u653e\u72b6\u6001\uff1a0\u672a\u64ad\u653e 1\u6b63\u5728\u64ad\u653e 2\u6682\u505c<br \/>\nint iTempPlay = 0;\/\/\u7528\u4e8eIDC_LST1 LBN_SELCHANGE<br \/>\nint iPlayListIndex = 0;\/\/\u64ad\u653e\u5217\u8868\u7d22\u5f15<br \/>\nint iLength;\/\/\u64ad\u653e\u6587\u4ef6\u65f6\u957f\u79d2\u6570<br \/>\nNOTIFYICONDATA nid;\/\/\u6258\u76d8\u56fe\u6807<\/p>\n<p>BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0 switch(uMsg)<br \/>\n\u00a0\u00a0\u00a0 {<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/BEGIN MESSAGE CRACK<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/HANDLE_MSG\u6d88\u606f\u5206\u6790\u5668\u53c2\u8003\uff1a<a href=\"http:\/\/hi.baidu.com\/%C7%C6%C0%B4%C7%C3%C8%A5\/blog\/item\/37a8e43ea710ede554e723b6.html\">http:\/\/hi.baidu.com\/%C7%C6%C0%B4%C7%C3%C8%A5\/blog\/item\/37a8e43ea710ede554e723b6.html<\/a><br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HANDLE_MSG(hWnd, WM_CLOSE, Main_OnClose);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HANDLE_MSG(hWnd, WM_HSCROLL, Main_OnHScroll);\/\/\u6c34\u5e73\u6eda\u52a8\u6761\u6d88\u606f\u3002WM_VSCROLL\u5782\u76f4\u6eda\u52a8\u6761\u6d88\u606f\u3002<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 HANDLE_MSG(hWnd, WM_SIZE, Main_OnSize);\/\/\u5904\u7406\u6700\u5c0f\u5316\u5230\u6258\u76d8\u56fe\u6807\u3002<br \/>\n\u00a0\u00a0case WM_NOTIFYICON:\/\/\u5355\u51fb\u6258\u76d8\u56fe\u6807\u6062\u590d\u754c\u9762\u3002<br \/>\n\u00a0\u00a0\u00a0if(WM_LBUTTONUP == (UINT)lParam)<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0Shell_NotifyIcon(NIM_DELETE, &amp;nid);<br \/>\n\u00a0\u00a0\u00a0\u00a0ShowWindow(hWnd, SW_NORMAL);<br \/>\n\u00a0\u00a0\u00a0\u00a0SetForegroundWindow(hWnd);\/\/\u6fc0\u6d3b<br \/>\n\u00a0\u00a0\u00a0\u00a0return TRUE;<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0return FALSE;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/END MESSAGE CRACK<br \/>\n\u00a0\u00a0\u00a0 }<\/p>\n<p>\u00a0\u00a0\u00a0 return FALSE;\/\/\u5982\u679c\u6ca1\u6709\u5bf9\u5e94\u7684\u6d88\u606f\u5904\u7406\uff0c\u5219\u8fd4\u56de\u7236\u7a97\u53e3FALSE\u3002<br \/>\n}<\/p>\n<p>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\n\/\/\u00a0 Main_OnInitDialog<br \/>\nBOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0 \/\/ Set app icons<br \/>\n\u00a0\u00a0\u00a0 \/\/\u8bbe\u7f6e\u56fe\u6807 ICON_BIG\u5927\u56fe\u6807 ICON_SMALL\u5c0f<br \/>\n\u00a0\u00a0\u00a0 HICON hIcon = LoadIcon((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICONAPP));<br \/>\n\u00a0\u00a0\u00a0 SendMessage(hwnd, WM_SETICON, ICON_BIG,\u00a0 (LPARAM)hIcon);<br \/>\n\u00a0\u00a0\u00a0 SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon);<br \/>\n\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0 \/\/<br \/>\n\u00a0\u00a0\u00a0 \/\/ Add initializing code here<br \/>\n\u00a0\u00a0\u00a0 \/\/<br \/>\n\u00a0\u00a0\u00a0 \/\/\u97f3\u91cf\u6eda\u52a8\u6761<br \/>\n\u00a0\u00a0\u00a0 \/\/\u8bbe\u7f6e\u6eda\u52a8\u6761\u53d6\u503c\u8303\u56f4<br \/>\n\u00a0\/\/\u53c2\u8003\uff1a<a href=\"http:\/\/www.rupeng.com\/forum\/redirect.php?fid=32&amp;tid=601&amp;goto=nextoldset\">http:\/\/www.rupeng.com\/forum\/redirect.php?fid=32&amp;tid=601&amp;goto=nextoldset<\/a><br \/>\n\u00a0\/\/http:\/\/hi.baidu.com\/mowm\/blog\/item\/c76d07ee77e5101efcfa3cd0.html<br \/>\n\u00a0\u00a0 \u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBVOLUME), TBM_SETRANGEMIN, TRUE, 0);\/\/\u6700\u5c0f\u503c<br \/>\n\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBVOLUME), TBM_SETRANGEMAX, TRUE, 1000);\/\/\u6700\u5927\u503c<br \/>\n\u00a0 \u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBVOLUME), TBM_SETPOS, TRUE, 800);\/\/\u5f53\u524d\u4f4d\u7f6e<br \/>\n\u00a0 \u00a0if(!Load(hwnd))\/\/\u52a0\u8f7d\u64ad\u653e\u5217\u8868<br \/>\n\u00a0 \u00a0\u00a0MessageBox(hwnd, TEXT(&#8220;MusicPlayer\u64ad\u653e\u5217\u8868\u52a0\u8f7d\u5931\u8d25&#8221;), TEXT(&#8220;MusicPlayer Error&#8221;), MB_OK | MB_ICONERROR);<br \/>\n\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0 return TRUE;<br \/>\n}<\/p>\n<p>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\n\/\/\u00a0 Main_OnCommand<br \/>\nvoid Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)<br \/>\n{<br \/>\n\u00a0\u00a0\u00a0 switch(id)<br \/>\n\u00a0\u00a0\u00a0 {<br \/>\n\u00a0\u00a0case IDC_BTNOPENFILES:\/\/\u6dfb\u52a0\u6587\u4ef6\u6309\u94ae<br \/>\n\u00a0\u00a0\u00a0OpenFiles(hwnd);<br \/>\n\u00a0\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNSELECTFOLDER:\/\/\u6dfb\u52a0\u6587\u4ef6\u5939\u6309\u94ae<br \/>\n\u00a0\u00a0\u00a0SelectFolder(hwnd);<br \/>\n\u00a0\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNPLAY:\/\/\u64ad\u653e\u6682\u505c\u6309\u94ae<br \/>\n\u00a0\u00a0\u00a0if(0 == iPlay)\/\/\u672a\u64ad\u653e<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/\u83b7\u5f97\u9009\u4e2d\u9879\u64ad\u653e\u5217\u8868\u7d22\u5f15 \u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0iPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u64ad\u653e\u9009\u4e2d\u9879\uff0c\u6539\u53d8\u64ad\u653e\u72b6\u6001\u3002<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0Play(hwnd, iPlayListIndex);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u6539\u53d8\u6309\u94ae\u663e\u793a\u6587\u5b57<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0SetWindowText(hwndCtl, TEXT(&#8220;\u6682\u505c&#8221;)); \u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0else if(1 == iPlay)\/\/\u6b63\u5728\u64ad\u653e<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/\u6682\u505c\u6b63\u5728\u64ad\u653e\u6587\u4ef6<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0mciSendString(&#8220;pause OpenMusicFile&#8221;, (LPTSTR)NULL, 0, NULL);<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\/\/\u6539\u53d8\u64ad\u653e\u72b6\u6001<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0iPlay = 2;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0\/\/\u6539\u53d8\u6309\u94ae\u663e\u793a\u6587\u5b57<br \/>\n\u00a0\u00a0\u00a0 \u00a0\u00a0SetWindowText(hwndCtl, TEXT(&#8220;\u64ad\u653e&#8221;)); \u00a0<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0else\/\/\u6682\u505c<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/\u6062\u590d\u6682\u505c\u64ad\u653e\u6587\u4ef6<br \/>\n\u00a0\u00a0\u00a0\u00a0mciSendString(&#8220;play OpenMusicFile&#8221;, (LPTSTR)NULL, 0, NULL);<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/\u6539\u53d8\u64ad\u653e\u72b6\u6001<br \/>\n\u00a0\u00a0 \u00a0\u00a0iPlay = 1;<br \/>\n\u00a0\u00a0 \u00a0\u00a0\/\/\u6539\u53d8\u6309\u94ae\u663e\u793a\u6587\u5b57<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0SetWindowText(hwndCtl, TEXT(&#8220;\u6682\u505c&#8221;));<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNPREV:\/\/\u4e0a\u4e00\u9996<br \/>\n\u00a0\u00a0\u00a0\/\/\u64ad\u653e\u6216\u6682\u505c\u65f6\uff0c\u53d6\u6d88\u539f\u6765\u56e0\u4e3a\u8c03\u7528Play\u51fd\u6570\u65f6\u8bbe\u7f6e\u7684\u5b9a\u65f6\u5668\u3002<br \/>\n\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0KillTimer(hwnd, 1);<br \/>\n\u00a0\u00a0\u00a0\/\/\u83b7\u5f97\u4e0a\u4e00\u9996\u64ad\u653e\u5217\u8868\u7d22\u5f15<br \/>\n\u00a0\u00a0\u00a0iPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0) &#8211; 1;<br \/>\n\u00a0\u00a0\u00a0if(iPlayListIndex &gt;= 0)\/\/\u7d22\u5f15\u5728\u8303\u56f4\u5185<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0Play(hwnd, iPlayListIndex);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u8bbe\u7f6e\u4e0a\u4e00\u9996\u4e3a\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iPlayListIndex, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u6682\u505c&#8221;));<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0else<br \/>\n\u00a0\u00a0\u00a0\u00a0iPlayListIndex = 0;<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNNEXT:\/\/\u4e0b\u4e00\u9996<br \/>\n\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0KillTimer(hwnd, 1);\u00a0<br \/>\n\u00a0\u00a0\u00a0iPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0) + 1;<br \/>\n\u00a0\u00a0\u00a0if(iPlayListIndex &lt; iNum)<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0Play(hwnd, iPlayListIndex);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iPlayListIndex, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u6682\u505c&#8221;));<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0else<br \/>\n\u00a0\u00a0\u00a0\u00a0iPlayListIndex = iNum &#8211; 1;<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 case IDC_LST1:\/\/\u5217\u8868\u6d88\u606f<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0switch(codeNotify)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0case LBN_SELCHANGE:\/\/\u9009\u4e2d\u9879\u6539\u53d8<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\/\/\u83b7\u5f97\u9009\u4e2d\u9879\u64ad\u653e\u5217\u8868\u7d22\u5f15<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0int iChange = SendMessage(hwndCtl, LB_GETCURSEL, 0, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0if(iChange != iPlayListIndex)\/\/\u7d22\u5f15\u6539\u53d8<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0iTempPlay = iPlay;\/\/\u4fdd\u5b58\u6587\u4ef6\u64ad\u653e\u72b6\u6001<br \/>\n\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0iPlay = 0;\/\/\u65b0\u6587\u4ef6\u672a\u64ad\u653e<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u64ad\u653e&#8221;));<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0else\/\/\u7d22\u5f15\u672a\u6539\u53d8<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0iPlay = iTempPlay;\/\/\u6062\u590d\u6587\u4ef6\u64ad\u653e\u72b6\u6001<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(1 == iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u6682\u505c&#8221;));<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0else<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u64ad\u653e&#8221;));<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0break;\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0case LBN_DBLCLK:\/\/\u53cc\u51fb\u67d0\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u64ad\u653e\u6216\u6682\u505c\u65f6\uff0c\u53d6\u6d88\u539f\u6765\u56e0\u4e3a\u8c03\u7528Play\u51fd\u6570\u65f6\u8bbe\u7f6e\u7684\u5b9a\u65f6\u5668\u3002<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0KillTimer(hwnd, 1);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0iPlayListIndex = SendMessage(hwndCtl, LB_GETCURSEL, 0, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0Play(hwnd, iPlayListIndex);<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u6682\u505c&#8221;));<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0break;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0default:break;<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNMOVEUP:<br \/>\n\u00a0\u00a0\u00a0int iTempPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0);\/\/\u9009\u4e2d\u9879\u7d22\u5f15<br \/>\n\u00a0\u00a0\u00a0if(iTempPlayListIndex &gt; 0)\/\/\u9009\u4e2d\u9879\u7d22\u5f15\u5927\u4e8e0\u624d\u80fd\u4e0a\u79fb<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0TCHAR szTempFileName[MAX_PATH];\/\/\u5b58\u653e\u9009\u4e2d\u6587\u4ef6\u8def\u5f84\u4e34\u65f6\u53d8\u91cf<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iTempPlayListIndex != iPlayListIndex)<br \/>\n\u00a0\u00a0\u00a0\u00a0{\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u4e0a\u79fb<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szTempFileName, szFileName[iTempPlayListIndex]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[iTempPlayListIndex], szFileName[iTempPlayListIndex-1]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[&#8211;iTempPlayListIndex], szTempFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u901a\u8fc7\u6587\u4ef6\u8def\u5f84\u83b7\u53d6\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0TCHAR* p = strrchr(szFileName[iTempPlayListIndex], &#8216;\\\\&#8217;);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0p++;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_INSERTSTRING, iTempPlayListIndex, (LPARAM)p);\/\/\u5728\u65b0\u4f4d\u7f6e\u63d2\u5165\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_DELETESTRING, iTempPlayListIndex+2, 0);\/\/\u5220\u9664\u539f\u4f4d\u7f6e\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iTempPlayListIndex, 0);\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0else<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u4e0a\u79fb<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szTempFileName, szFileName[iPlayListIndex]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[iPlayListIndex], szFileName[iPlayListIndex-1]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[&#8211;iPlayListIndex], szTempFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u901a\u8fc7\u6587\u4ef6\u8def\u5f84\u83b7\u53d6\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0TCHAR* p = strrchr(szFileName[iPlayListIndex], &#8216;\\\\&#8217;);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0p++;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_INSERTSTRING, iPlayListIndex, (LPARAM)p);\/\/\u5728\u65b0\u4f4d\u7f6e\u63d2\u5165\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_DELETESTRING, iPlayListIndex+2, 0);\/\/\u5220\u9664\u539f\u4f4d\u7f6e\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iPlayListIndex, 0);\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNMOVEDOWN:<br \/>\n\u00a0\u00a0\u00a0iTempPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0);\/\/\u9009\u4e2d\u9879\u7d22\u5f15<br \/>\n\u00a0\u00a0\u00a0if(iTempPlayListIndex &lt; iNum-1)\/\/\u9009\u4e2d\u9879\u7d22\u5f15\u5c0f\u4e8eiNum-1\u624d\u80fd\u4e0b\u79fb<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0TCHAR szTempFileName[MAX_PATH];\/\/\u5b58\u653e\u9009\u4e2d\u6587\u4ef6\u8def\u5f84\u4e34\u65f6\u53d8\u91cf<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iTempPlayListIndex != iPlayListIndex)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u4e0b\u79fb<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szTempFileName, szFileName[iTempPlayListIndex]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[iTempPlayListIndex], szFileName[iTempPlayListIndex+1]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[++iTempPlayListIndex], szTempFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u901a\u8fc7\u6587\u4ef6\u8def\u5f84\u83b7\u53d6\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0TCHAR* p = strrchr(szFileName[iTempPlayListIndex], &#8216;\\\\&#8217;);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0p++;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_INSERTSTRING, iTempPlayListIndex+1, (LPARAM)p);\/\/\u5728\u65b0\u4f4d\u7f6e\u63d2\u5165\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_DELETESTRING, iTempPlayListIndex-1, 0);\/\/\u5220\u9664\u539f\u4f4d\u7f6e\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iTempPlayListIndex, 0);\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0else<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u4e0b\u79fb<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szTempFileName, szFileName[iPlayListIndex]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[iPlayListIndex], szFileName[iPlayListIndex+1]);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[++iPlayListIndex], szTempFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u901a\u8fc7\u6587\u4ef6\u8def\u5f84\u83b7\u53d6\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0TCHAR* p = strrchr(szFileName[iPlayListIndex], &#8216;\\\\&#8217;);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0p++;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_INSERTSTRING, iPlayListIndex+1, (LPARAM)p);\/\/\u5728\u65b0\u4f4d\u7f6e\u63d2\u5165\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_DELETESTRING, iPlayListIndex-1, 0);\/\/\u5220\u9664\u539f\u4f4d\u7f6e\u6587\u4ef6\u540d<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iPlayListIndex, 0);\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0case IDC_BTNDELETE:<br \/>\n\u00a0\u00a0\u00a0if(0 == iNum)<br \/>\n\u00a0\u00a0\u00a0\u00a0break;\/\/\u6ca1\u6709\u6587\u4ef6\u65f6\uff0c\u4e0d\u6267\u884c\u5220\u9664\u64cd\u4f5c\u3002<br \/>\n\u00a0\u00a0\u00a0iTempPlayListIndex = SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_GETCURSEL, 0, 0);\/\/\u9009\u4e2d\u9879\u7d22\u5f15<br \/>\n\u00a0\u00a0\u00a0if(iTempPlayListIndex == iPlayListIndex)\/\/\u9009\u4e2d\u9879\u662f\u64ad\u653e\u6587\u4ef6<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/\u64ad\u653e\u6216\u6682\u505c\u72b6\u6001\uff0c\u5173\u95ed\u6587\u4ef6\uff0c\u53d6\u6d88\u5b9a\u65f6\u5668\uff0c\u8bbe\u7f6e\u64ad\u653e\u72b6\u6001\u3002<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0mciSendString(&#8220;close OpenMusicFile&#8221;, (LPTSTR)NULL, 0, 0);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0KillTimer(hwnd, 1);<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0iPlay = 0;<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iPlayListIndex == iNum-1)\/\/\u5982\u679c\u662f\u6700\u540e\u4e00\u9996\uff0c\u5219iPlayListIndex\u6307\u5411\u5220\u9664\u540e\u7684\u6700\u540e\u4e00\u9996\u3002\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0iPlayListIndex&#8211;;<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0else\/\/\u9009\u4e2d\u9879\u4e0d\u662f\u64ad\u653e\u6587\u4ef6\uff0c\u5219\u53c2\u770bIDC_LST1 LBN_SELCHANGE\u3002<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0iPlay = 1;<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0if(iTempPlayListIndex &lt; iPlayListIndex)\/\/\u9009\u4e2d\u9879\u5728iPlayListIndex\u524d\uff0c\u5219iPlayListIndex\u6307\u5411\u5220\u9664\u540e\u7684\u6b63\u5728\u64ad\u653e\u6587\u4ef6\u3002<br \/>\n\u00a0\u00a0\u00a0\u00a0iPlayListIndex&#8211;;<br \/>\n\u00a0\u00a0\u00a0\/\/\u5904\u7406\u64ad\u653e\u6587\u4ef6\u5217\u8868<br \/>\n\u00a0\u00a0\u00a0for(int i = iTempPlayListIndex; i &lt; iNum-1; i++)<br \/>\n\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0lstrcpy(szFileName[i], szFileName[i+1]);<br \/>\n\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0\u00a0szFileName[&#8211;iNum][0] = &#8216;\\0&#8217;;\/\/\u5220\u9664\u9879\u5185\u5bb9\u6e05\u7a7a<br \/>\n\u00a0\u00a0\u00a0\/\/\u5904\u7406IDC_LST1<br \/>\n\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_DELETESTRING, iTempPlayListIndex, 0);<br \/>\n\u00a0\u00a0\u00a0if(iTempPlayListIndex == iNum)<br \/>\n\u00a0\u00a0\u00a0\u00a0iTempPlayListIndex&#8211;;<br \/>\n\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, iTempPlayListIndex, 0);<br \/>\n\u00a0\u00a0\u00a0if(0 == iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0Play(hwnd, iPlayListIndex);<br \/>\n\u00a0\u00a0break;<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 default:break;<br \/>\n\u00a0\u00a0\u00a0 }<br \/>\n}<\/p>\n<p>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\n\/\/\u00a0 Main_OnClose<br \/>\nvoid Main_OnClose(HWND hwnd)<br \/>\n{<br \/>\n\u00a0if(!Save())\/\/\u4fdd\u5b58\u64ad\u653e\u5217\u8868<br \/>\n\u00a0\u00a0MessageBox(hwnd, TEXT(&#8220;MusicPlayer\u64ad\u653e\u5217\u8868\u4fdd\u5b58\u5931\u8d25&#8221;), TEXT(&#8220;MusicPlayer Error&#8221;), MB_OK | MB_ICONERROR);<br \/>\n\u00a0\u00a0\u00a0 EndDialog(hwnd, 0);<br \/>\n}<\/p>\n<p>void Main_OnHScroll(HWND hwnd, HWND hwndCtl, UINT code, int pos)\/\/\u56fa\u5b9a\u683c\u5f0f?<br \/>\n{<br \/>\n\u00a0if(hwndCtl == GetDlgItem(hwnd, IDC_TRBVOLUME))<br \/>\n\u00a0\u00a0SetVolume(hwnd);<br \/>\n\u00a0else<br \/>\n\u00a0\u00a0SetPlayProcess(hwnd);<br \/>\n}<\/p>\n<p>void Main_OnSize(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)<br \/>\n{<br \/>\n\u00a0if(SIZE_MINIMIZED == message)\/\/\u6700\u5c0f\u5316\u6d88\u606f\u5728WM_SIZE\u6d88\u606f\u7684wParam\u53c2\u6570\u91cc<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0ZeroMemory(&amp;nid, sizeof(nid));<br \/>\n\u00a0\u00a0nid.cbSize = sizeof(nid);<br \/>\n\u00a0\u00a0nid.hWnd = hwnd;<br \/>\n\u00a0\u00a0nid.uID = IDI_ICONAPP;<br \/>\n\u00a0\u00a0nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;<br \/>\n\u00a0\u00a0nid.uCallbackMessage = WM_NOTIFYICON;<br \/>\n\u00a0\u00a0nid.hIcon = LoadIcon((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDI_ICONAPP));<br \/>\n\u00a0\u00a0lstrcpy(nid.szTip, &#8220;MusicPlayer&#8221;);<br \/>\n\u00a0\u00a0Shell_NotifyIcon(NIM_ADD, &amp;nid);<br \/>\n\u00a0\u00a0ShowWindow(hwnd, SW_HIDE);<br \/>\n\u00a0}<br \/>\n}<\/p>\n<p>void OpenFiles(HWND hwnd)<br \/>\n{<br \/>\n\u00a0\/\/\u5b9a\u65f6\u5668\u8bbe\u7f6e\u53c2\u8003\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846<br \/>\n\u00a0if(iPlay)<br \/>\n\u00a0\u00a0KillTimer(hwnd, 1);<br \/>\n\u00a0OPENFILENAME ofn;<br \/>\n\u00a0\u00a0TCHAR szOpenFileNames[80*MAX_PATH];\/\/\u6587\u4ef6\u8def\u5f84<br \/>\n\u00a0\u00a0TCHAR szPath[MAX_PATH];\/\/\u57fa\u8def\u5f84<br \/>\n\u00a0\u00a0TCHAR* p;<br \/>\n\u00a0\u00a0ZeroMemory(&amp;ofn, sizeof(ofn)); \u00a0<br \/>\n\u00a0\u00a0ofn.lStructSize = sizeof(ofn);\u00a0<br \/>\n\u00a0\u00a0ofn.lpstrFile = szOpenFileNames;<br \/>\n\u00a0\u00a0ofn.lpstrFile[0] = &#8216;\\0&#8217;;<br \/>\n\u00a0\u00a0ofn.nMaxFile = sizeof(szOpenFileNames);\u00a0<br \/>\n\u00a0\u00a0ofn.lpstrFilter = TEXT(&#8220;\u97f3\u4e50\u6587\u4ef6(mp3\u3001wma\u3001wav)\\0*.mp3;*.wma;*.wav\\0\u6240\u6709\u6587\u4ef6(*.*)\\0*.*\\0&#8243;);<br \/>\n\u00a0\u00a0ofn.Flags = OFN_EXPLORER | OFN_ALLOWMULTISELECT | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;<br \/>\n\u00a0\u00a0if(GetOpenFileName(&amp;ofn))<br \/>\n\u00a0\u00a0{\u00a0<br \/>\n\u00a0\u00a0\/\/\u5355\u4e2a\u6587\u4ef6\u7684\u4fdd\u5b58\u5f62\u5f0f\u4e3a\uff1a\u7edd\u5bf9\u8def\u5f84\\0<br \/>\n\u00a0\u00a0\u00a0\/\/\u591a\u4e2a\u6587\u4ef6\u7684\u4fdd\u5b58\u5f62\u5f0f\u4e3a\uff1a\u57fa\u8def\u5f84\\000\u6587\u4ef6\u4e00\\000\u6587\u4ef6\u4e8c\\0<br \/>\n\u00a0\u00a0\/\/\u6ce8\u610f\u8def\u5f84&#8221;\\&#8221;\u7684\u8f6c\u4e49\u4e3a&#8221;\\\\&#8221;<br \/>\n\u00a0 \u00a0\u00a0\/\/\u628a\u8def\u5f84\u590d\u5236\u5230szPath<br \/>\n\u00a0 \u00a0\u00a0\/\/\u53c2\u8003\u8d44\u6599\uff1a<a href=\"http:\/\/blog.csdn.net\/xuminggang\/archive\/2009\/05\/21\/4206010.aspx\">http:\/\/blog.csdn.net\/xuminggang\/archive\/2009\/05\/21\/4206010.aspx<\/a><br \/>\n\u00a0 \u00a0\u00a0lstrcpyn(szPath, szOpenFileNames, ofn.nFileOffset+1);<br \/>\n\u00a0 \u00a0\u00a0\/\/\u6839\u636e\u5355\u4e2a\u548c\u591a\u4e2a\u6587\u4ef6\u4e0d\u540c\u7684\u4fdd\u5b58\u5f62\u5f0f\uff0c\u591a\u6587\u4ef6\u57fa\u8def\u5f84\u9700\u52a0&#8221;\\\\&#8221;\u3002<br \/>\n\u00a0 \u00a0\u00a0szPath[ofn.nFileOffset-1] = &#8216;\\\\&#8217;;<br \/>\n\u00a0\u00a0\/\/\u628a\u6307\u9488\u79fb\u5230\u7b2c\u4e00\u4e2a\u6587\u4ef6\u00a0\u00a0<br \/>\n\u00a0 \u00a0\u00a0p = szOpenFileNames + ofn.nFileOffset;<br \/>\n\u00a0\u00a0iPlayListIndex = iNum;\/\/\u52a0\u5165\u7684\u7b2c\u4e00\u4e2a\u6587\u4ef6<br \/>\n\u00a0 \u00a0\u00a0while(*p)<br \/>\n\u00a0 \u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iNum &gt;= 100)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0MessageBox(hwnd, TEXT(&#8220;MusicPlayer\u5df2\u8fbe\u5230\u6700\u5927\u97f3\u4e50\u6570100&#8221;), TEXT(&#8220;MusicPlayer Error&#8221;), MB_OK | MB_ICONERROR);<br \/>\n\u00a0\u00a0\u00a0 \u00a0return;<br \/>\n\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0lstrcat(szFileName[iNum], szPath);\u00a0\/\/\u57fa\u8def\u5f84\u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0lstrcat(szFileName[iNum], p);\u00a0\u00a0\u00a0 \u00a0\/\/\u57fa\u8def\u5f84+\u6587\u4ef6=\u7edd\u5bf9\u8def\u5f84<br \/>\n\u00a0\u00a0\u00a0\/\/\u52a0\u5165\u5217\u8868<br \/>\n\u00a0\u00a0\u00a0\/\/ListBox\u53c2\u8003\uff1a<a href=\"http:\/\/www.cnitblog.com\/netssfy\/archive\/2007\/06\/12\/28347.html\">http:\/\/www.cnitblog.com\/netssfy\/archive\/2007\/06\/12\/28347.html<\/a>\u00a0<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_ADDSTRING, 0, (LPARAM)p);<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0p += lstrlen(p) +1;\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0\/\/\u79fb\u81f3\u4e0b\u4e00\u4e2a\u6587\u4ef6<br \/>\n\u00a0\u00a0 \u00a0\u00a0\u00a0iNum++;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/\u589e\u52a0\u97f3\u4e50\u6570\uff0c\u79fb\u52a8\u51c6\u5907\u63a5\u6536\u4e0b\u4e00\u4e2a\u6587\u4ef6\u8def\u5f84\u3002<br \/>\n\u00a0 \u00a0\u00a0}<br \/>\n\u00a0 \u00a0\u00a0\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, (WPARAM)iPlayListIndex, 0);<br \/>\n\u00a0\u00a0\/\/\u64ad\u653e\u9009\u4e2d\u9879<br \/>\n\u00a0\u00a0Play(hwnd, iPlayListIndex);\u00a0<br \/>\n\u00a0}<br \/>\n\u00a0else<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0SetTimer(hwnd, 1, 1000, PlayProcess);<br \/>\n\u00a0}<br \/>\n}<\/p>\n<p>void Play(HWND hwnd, int iPlayListIndex)<br \/>\n{<br \/>\n\u00a0TCHAR szMCIInfo[256];\u00a0\u00a0\u00a0\u00a0\/\/MCI\u64cd\u4f5c\u8fd4\u56de\u4fe1\u606f<br \/>\n\u00a0TCHAR szShortFileName[MAX_PATH];\u00a0\/\/\u77ed\u6587\u4ef6\u540d<br \/>\n\u00a0ZeroMemory(szShortFileName, sizeof(szShortFileName));<br \/>\n\u00a0\/\/\u5173\u95ed\u6b63\u5728\u64ad\u653e\u7684\u6587\u4ef6<br \/>\n\u00a0\/\/OpenMusicFile\u662f\u901a\u8fc7MCI Command String\u4e2dalias\u8bbe\u7f6e\u6587\u4ef6\u522b\u540d<br \/>\n\u00a0mciSendString(&#8220;close OpenMusicFile&#8221;, szMCIInfo, sizeof(szMCIInfo), NULL);<br \/>\n\u00a0\/\/\u53c2\u8003\uff1a<a href=\"http:\/\/www.programfan.com\/doc\/vbapi\/GetShortPathName.htm\">http:\/\/www.programfan.com\/doc\/vbapi\/GetShortPathName.htm<\/a><br \/>\n\u00a0\/\/http:\/\/topic.csdn.net\/t\/20060926\/15\/5049254.html<br \/>\n\u00a0\/\/\u5426\u5219\u64ad\u653e\u4e0d\u4e86\u8def\u5f84\u5e26\u7a7a\u683c\u7684\u6587\u4ef6<br \/>\n\u00a0GetShortPathName(szFileName[iPlayListIndex], szShortFileName, sizeof(szShortFileName));<br \/>\n\u00a0\/\/\u8f6c\u6210\u77ed\u8def\u5f84\u5931\u8d25<br \/>\n\u00a0\u00a0DWORD dwError = GetLastError();<br \/>\n\u00a0\/\/\u5982\u679c\u64cd\u4f5c\u5931\u8d25<br \/>\n\u00a0 \u00a0if(0 != dwError)<br \/>\n\u00a0 \u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0LPVOID lpMsgBuf = NULL;<br \/>\n\u00a0\u00a0\/\/\u5c06dwError\u9519\u8bef\u4ee3\u7801\u8f6c\u5316\u4e3a\u5b57\u7b26\u4e32lpMsgBuf<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0FormatMessage(<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0FORMAT_MESSAGE_ALLOCATE_BUFFER |<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0FORMAT_MESSAGE_FROM_SYSTEM,<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0NULL,<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0dwError,<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0(LPTSTR)&amp;lpMsgBuf,<br \/>\n\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a00, NULL );<br \/>\n\u00a0\u00a0\u00a0 \u00a0\/\/\u663e\u793a\u9519\u8bef\u539f\u56e0<br \/>\n\u00a0\u00a0\u00a0 \u00a0MessageBox(NULL, (LPTSTR)lpMsgBuf, &#8220;Error&#8221;, MB_OK|MB_ICONSTOP);\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0 \u00a0\/\/\u91ca\u653eBuffer<br \/>\n\u00a0\u00a0\u00a0 \u00a0LocalFree(lpMsgBuf);<br \/>\n\u00a0\u00a0\u00a0 \u00a0return;<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\/\/MCI Command String<br \/>\n\u00a0\/\/\u53c2\u8003\uff1a<a href=\"http:\/\/tieba.baidu.com\/f?kz=26410588\">http:\/\/tieba.baidu.com\/f?kz=26410588<\/a><br \/>\n\u00a0TCHAR szCMD[2*MAX_PATH];<br \/>\n\u00a0wsprintf(szCMD, &#8220;open %s alias OpenMusicFile&#8221;, szShortFileName);<br \/>\n\u00a0\/\/\u6253\u5f00\u6587\u4ef6\u00a0\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0mciSendString(szCMD, szMCIInfo, sizeof(szMCIInfo), NULL);<br \/>\n\u00a0\/\/\u64ad\u653e\u6587\u4ef6\u00a0<br \/>\n\u00a0mciSendString(&#8220;play OpenMusicFile&#8221;, szMCIInfo, sizeof(szMCIInfo), NULL);<br \/>\n\u00a0mciSendString(&#8220;status OpenMusicFile length&#8221;, szMCIInfo, sizeof(szMCIInfo), NULL);\/\/szMCIInfo\u83b7\u5f97\u64ad\u653e\u65f6\u957f\u6beb\u79d2\u6570<br \/>\n\u00a0iLength = atoi(szMCIInfo)\/1000;\/\/\u64ad\u653e\u65f6\u957f\u79d2\u6570<br \/>\n\u00a0\/\/\u8bbe\u7f6e\u8fdb\u5ea6\u6eda\u52a8\u6761\u53d6\u503c\u8303\u56f4<br \/>\n\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_SETRANGEMIN, TRUE, 0);<br \/>\n\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_SETRANGEMAX, TRUE, iLength);<br \/>\n\u00a0\/\/\u8bbe\u7f6e\u5b9a\u65f6\u5668\uff0c\u66f4\u65b0\u8fdb\u5ea6\u6eda\u52a8\u6761\u3002<br \/>\n\u00a0SetTimer(hwnd, 1, 1000, PlayProcess);<br \/>\n\u00a0\/\/\u8bbe\u7f6e\u97f3\u91cf<br \/>\n\u00a0SetVolume(hwnd);<br \/>\n\u00a0\/\/\u6539\u53d8\u64ad\u653e\u72b6\u6001<br \/>\n\u00a0iPlay = 1;<br \/>\n\u00a0\/\/\u6539\u53d8\u6309\u94ae\u663e\u793a\u6587\u5b57<br \/>\n\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), &#8220;\u6682\u505c&#8221;);<br \/>\n}<\/p>\n<p>void SetVolume(HWND hwnd)<br \/>\n{<br \/>\n\u00a0\/\/\u83b7\u5f97\u97f3\u91cf\u6eda\u52a8\u4f53\u5f53\u524d\u4f4d\u7f6e<br \/>\n\u00a0int iVolume = SendMessage(GetDlgItem(hwnd, IDC_TRBVOLUME), TBM_GETPOS, 0, 0);<br \/>\n\u00a0\/\/\u8bbe\u7f6e\u97f3\u91cf<br \/>\n\u00a0TCHAR szVolume[256];<br \/>\n\u00a0wsprintf(szVolume, &#8220;setaudio OpenMusicFile volume to %d&#8221;, iVolume);<br \/>\n\u00a0mciSendString(szVolume, (LPTSTR)NULL, 0, 0);<br \/>\n}<\/p>\n<p>void SetPlayProcess(HWND hwnd)<br \/>\n{<br \/>\n\u00a0if(0 == iPlay)\/\/\u672a\u64ad\u653e\u65f6\u4e0d\u80fd\u62d6\u52a8\u6eda\u52a8\u6761<br \/>\n\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_SETPOS, TRUE, 0);<br \/>\n\u00a0else if(1 == iPlay)\/\/\u53ea\u80fd\u5728\u64ad\u653e\u65f6\u62d6\u52a8\u8fdb\u5ea6\u6eda\u52a8\u6761<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0TCHAR szPlayProcess[256];<br \/>\n\u00a0\u00a0int iPosition = SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_GETPOS, 0, 0)*1000;\/\/\u62d6\u52a8\u4f4d\u7f6e\u6beb\u79d2\u6570<br \/>\n\u00a0\u00a0wsprintf(szPlayProcess, &#8220;play OpenMusicFile from %d&#8221;, iPosition);<br \/>\n\u00a0\u00a0mciSendString(szPlayProcess, (LPTSTR)NULL, 0, 0);<br \/>\n\u00a0}<br \/>\n}<\/p>\n<p>void CALLBACK PlayProcess(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)<br \/>\n{<br \/>\n\u00a0TCHAR szMCIInfo[256];\/\/MCI\u64cd\u4f5c\u8fd4\u56de\u4fe1\u606f<br \/>\n\u00a0mciSendString(&#8220;status OpenMusicFile position&#8221;, szMCIInfo, sizeof(szMCIInfo), NULL);\/\/szMCIInfo\u83b7\u5f97\u64ad\u653e\u5f53\u524d\u4f4d\u7f6e\u6beb\u79d2\u6570<br \/>\n\u00a0int iPosition = atoi(szMCIInfo)\/1000;\/\/\u64ad\u653e\u5f53\u524d\u4f4d\u7f6e\u79d2\u6570<br \/>\n\u00a0\/\/\u66f4\u65b0\u64ad\u653e\u65f6\u95f4<br \/>\n\u00a0\/\/TCHAR* szBuffer;<br \/>\n\u00a0\/\/FormatTime(iPosition, szBuffer);<br \/>\n\u00a0\/\/SetWindowText(GetDlgItem(hwnd, IDC_STCTIME), szBuffer);<br \/>\n\u00a0ShowTime(hwnd, iPosition);<br \/>\n\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_SETPOS, TRUE, (LPARAM)iPosition);\/\/\u8bbe\u7f6e\u8fdb\u5ea6\u6eda\u52a8\u6761\u4f4d\u7f6e<br \/>\n\u00a0if(iPosition == iLength)\/\/\u7ed3\u675f<br \/>\n\u00a0{\u00a0\u00a0<br \/>\n\u00a0\u00a0mciSendString(&#8220;close OpenMusicFile&#8221;, (LPTSTR)NULL, 0, 0);<br \/>\n\u00a0\u00a0iPlay = 0;<br \/>\n\u00a0\u00a0KillTimer(hwnd, 1);<br \/>\n\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_STCTIME), TEXT(&#8220;00:00 \/ 00:00&#8221;));<br \/>\n\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_TRBPROCESS), TBM_SETPOS, TRUE, 0);<br \/>\n\u00a0\u00a0SetWindowText(GetDlgItem(hwnd, IDC_BTNPLAY), TEXT(&#8220;\u64ad\u653e&#8221;));<br \/>\n\u00a0\u00a0if(iPlayListIndex &lt; iNum)<br \/>\n\u00a0\u00a0\u00a0SendMessage(hwnd, WM_COMMAND, IDC_BTNNEXT, 0);<br \/>\n\u00a0}<br \/>\n}<\/p>\n<p>void FormatTime(int iPosition, TCHAR* szBuffer)<br \/>\n{<br \/>\n\u00a0int iLengthMinute, iLengthSecond, iPositionMinute, iPositionSecond;<br \/>\n\u00a0iLengthMinute = iLength\/60;\/\/\u603b\u65f6\u957f\u5206\u949f<br \/>\n\u00a0iLengthSecond = iLength-iLengthMinute*60;\/\/\u603b\u65f6\u957f\u79d2\u949f<br \/>\n\u00a0iPositionMinute = iPosition\/60;\/\/\u5f53\u524d\u65f6\u957f\u5206\u949f<br \/>\n\u00a0iPositionSecond = iPosition &#8211; iPositionMinute*60;\/\/\u5f53\u524d\u65f6\u957f\u79d2\u949f<br \/>\n\u00a0\/\/\u663e\u793a<br \/>\n\u00a0wsprintf(szBuffer, &#8220;%02d:%02d \/ %02d:%02d&#8221;, iPositionMinute, iPositionSecond, iLengthMinute, iLengthSecond);<br \/>\n}<\/p>\n<p>void ShowTime(HWND hwnd, int iPosition)<br \/>\n{<br \/>\n\u00a0TCHAR szBuffer[20];<br \/>\n\u00a0int iLengthMinute, iLengthSecond, iPositionMinute, iPositionSecond;<br \/>\n\u00a0iLengthMinute = iLength\/60;\/\/\u603b\u65f6\u957f\u5206\u949f<br \/>\n\u00a0iLengthSecond = iLength-iLengthMinute*60;\/\/\u603b\u65f6\u957f\u79d2\u949f<br \/>\n\u00a0iPositionMinute = iPosition\/60;\/\/\u5f53\u524d\u65f6\u957f\u5206\u949f<br \/>\n\u00a0iPositionSecond = iPosition &#8211; iPositionMinute*60;\/\/\u5f53\u524d\u65f6\u957f\u79d2\u949f<br \/>\n\u00a0\/\/\u663e\u793a<br \/>\n\u00a0wsprintf(szBuffer, &#8220;%02d:%02d \/ %02d:%02d&#8221;, iPositionMinute, iPositionSecond, iLengthMinute, iLengthSecond);<br \/>\n\u00a0SetWindowText(GetDlgItem(hwnd, IDC_STCTIME), szBuffer);<br \/>\n}<\/p>\n<p>\/\/\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846<br \/>\n\/\/\u53c2\u8003\uff1a<a href=\"http:\/\/blog.csdn.net\/ShardowM\/archive\/2008\/06\/06\/2516213.aspx\">http:\/\/blog.csdn.net\/ShardowM\/archive\/2008\/06\/06\/2516213.aspx<\/a><br \/>\n\/\/http:\/\/topic.csdn.net\/t\/20021103\/14\/1143060.html<br \/>\n\/\/http:\/\/www.programfan.com\/blog\/article.asp?id=19614<br \/>\nvoid SelectFolder(HWND hwnd)<br \/>\n{<br \/>\n\u00a0if(iPlay)<br \/>\n\u00a0\u00a0KillTimer(hwnd, 1);\/\/\u5b9a\u65f6\u5668\u5f71\u54cd\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846\uff0c\u6545\u53d6\u6d88\u3002<br \/>\n\u00a0LPMALLOC lpMalloc = NULL;<br \/>\n\u00a0if(SUCCEEDED(SHGetMalloc(&amp;lpMalloc)))<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0TCHAR szPath[MAX_PATH];<br \/>\n\u00a0\u00a0BROWSEINFO bi;<br \/>\n\u00a0\u00a0LPITEMIDLIST pidl = NULL;<br \/>\n\u00a0\u00a0ZeroMemory(szPath, sizeof(szPath));\/\/\u6ce8\u610f\u7ed3\u6784\u4f53\u7684\u7f6e\u96f6<br \/>\n\u00a0\u00a0ZeroMemory(&amp;bi, sizeof(bi));<br \/>\n\u00a0\u00a0bi.hwndOwner = hwnd;<br \/>\n\u00a0\u00a0bi.pidlRoot = NULL;<br \/>\n\u00a0\u00a0bi.pszDisplayName = szPath;<br \/>\n\u00a0\u00a0bi.lpszTitle = TEXT(&#8220;\u9009\u62e9\u76ee\u5f55\uff1a&#8221;);<br \/>\n\u00a0\u00a0bi.ulFlags = BIF_RETURNONLYFSDIRS | BIF_BROWSEFORCOMPUTER;<br \/>\n\u00a0\u00a0bi.lpfn = NULL;<br \/>\n\u00a0\u00a0bi.lParam = 0;<br \/>\n\u00a0\u00a0bi.iImage = 0;<br \/>\n\u00a0\u00a0CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);\/\/\u521d\u59cb\u5316COM\u5e93<br \/>\n\u00a0\u00a0if((pidl = SHBrowseForFolder(&amp;bi)) != NULL)\/\/\u663e\u793a\u6587\u4ef6\u5939\u9009\u62e9\u5bf9\u8bdd\u6846\u5e76\u64cd\u4f5c<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0SHGetPathFromIDList(pidl, szPath);\/\/\u8f6c\u6362\u6587\u4ef6\u5939\u8def\u5f84<br \/>\n\u00a0\u00a0\u00a0FindAllFile(hwnd, szPath, &#8220;*.mp3&#8221;);\/\/\u67e5\u627e\u6587\u4ef6\u5939\u4e0bmp3\u6587\u4ef6<br \/>\n\u00a0\u00a0\u00a0FindAllFile(hwnd, szPath, &#8220;*.wma&#8221;);\/\/wma<br \/>\n\u00a0\u00a0\u00a0FindAllFile(hwnd, szPath, &#8220;*.wav&#8221;);\/\/wav<br \/>\n\u00a0\u00a0\u00a0\/\/MessageBox(NULL, szPath, &#8220;&#8221;, MB_OK);<br \/>\n\u00a0\u00a0\u00a0CoTaskMemFree(pidl);<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0else<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0if(iPlay)<br \/>\n\u00a0\u00a0\u00a0\u00a0SetTimer(hwnd, 1, 1000, PlayProcess);\/\/\u6309\u53d6\u6d88\uff0c\u6062\u590d\u5b9a\u65f6\u5668\u3002<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0\/\/lpMalloc-&gt;Free(pidl);<br \/>\n\u00a0\u00a0lpMalloc-&gt;Release();<br \/>\n\u00a0\u00a0CoUninitialize();\/\/\u5173\u95edCOM\u5e93\u00a0\u00a0<br \/>\n\u00a0}<br \/>\n}<\/p>\n<p>\/\/\u662f\u5426\u662f\u6839\u76ee\u5f55<br \/>\n\/\/\u6839\u76ee\u5f55\u8def\u5f84\u5982\uff1aF:\\<br \/>\n\/\/\u975e\u6839\u76ee\u5f55\u8def\u5f84\u5982\uff1aF:\\Music<br \/>\nBOOL IsRoot(LPCTSTR lpszPath)<br \/>\n{<br \/>\n\u00a0return 3 == lstrlen(lpszPath);<br \/>\n}<\/p>\n<p>\/\/\u904d\u5386\u6587\u4ef6\u5939\uff0c\u627e\u51fa\u6307\u5b9a\u540e\u7f00\u6587\u4ef6\u3002<br \/>\n\/\/\u53c2\u8003\uff1a<a href=\"http:\/\/www.programfan.com\/club\/showpost.asp?id=18098\">http:\/\/www.programfan.com\/club\/showpost.asp?id=18098<\/a><br \/>\n\/\/http:\/\/hi.baidu.com\/csuhkx\/blog\/item\/cb66ff00d82bc610738b6521.html<br \/>\nvoid FindAllFile(HWND hwnd, LPCTSTR lpszPath, LPCTSTR lpszSuffix)<br \/>\n{<br \/>\n\u00a0WIN32_FIND_DATA wfd;<br \/>\n\u00a0TCHAR szPath[MAX_PATH];<br \/>\n\u00a0lstrcpy(szPath, lpszPath);<br \/>\n\u00a0if(!IsRoot(szPath))\/\/\u975e\u6839\u76ee\u5f55\u52a0\u4e0a&#8221;\\\\&#8221;<br \/>\n\u00a0\u00a0lstrcat(szPath, &#8220;\\\\&#8221;);<br \/>\n\u00a0lstrcat(szPath, lpszSuffix);\/\/\u52a0\u4e0a\u540e\u7f00<br \/>\n\u00a0HANDLE hFind = FindFirstFile(szPath, &amp;wfd);<br \/>\n\u00a0if(INVALID_HANDLE_VALUE == hFind)\/\/\u672a\u627e\u5230\u6587\u4ef6\uff0c\u8fd4\u56de\u3002<br \/>\n\u00a0\u00a0return;<br \/>\n\u00a0do<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0if(&#8216;.&#8217; == wfd.cFileName[0])<br \/>\n\u00a0\u00a0\u00a0continue;<br \/>\n\u00a0\u00a0if(wfd.dwFileAttributes &amp; FILE_ATTRIBUTE_DIRECTORY)\/\/\u5982\u679c\u662f\u76ee\u5f55\uff0c\u9012\u5f52\u8fdb\u5165\u76ee\u5f55\u904d\u5386\u3002<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0if(IsRoot(lpszPath))\/\/\u6839\u76ee\u5f55<br \/>\n\u00a0\u00a0\u00a0\u00a0wsprintf(szPath, &#8220;%s%s&#8221;, lpszPath, wfd.cFileName);<br \/>\n\u00a0\u00a0\u00a0else\/\/\u975e\u6839\u76ee\u5f55<br \/>\n\u00a0\u00a0\u00a0 \u00a0\u00a0wsprintf(szPath, &#8220;%s\\\\%s&#8221;, lpszPath, wfd.cFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0FindAllFile(hwnd, szPath, lpszSuffix);<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0\u00a0else<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0if(IsRoot(lpszPath))\/\/\u6839\u76ee\u5f55<br \/>\n\u00a0\u00a0\u00a0\u00a0wsprintf(szPath, &#8220;%s%s&#8221;, lpszPath, wfd.cFileName);\u00a0\u00a0\u00a0\u00a0<br \/>\n\u00a0\u00a0\u00a0else\/\/\u975e\u6839\u76ee\u5f55<br \/>\n\u00a0\u00a0\u00a0 \u00a0\u00a0wsprintf(szPath, &#8220;%s\\\\%s&#8221;, lpszPath, wfd.cFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0if(iNum &gt;= 100)<br \/>\n\u00a0\u00a0\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0MessageBox(hwnd, TEXT(&#8220;MusicPlayer\u5df2\u8fbe\u5230\u6700\u5927\u97f3\u4e50\u6570100&#8221;), TEXT(&#8220;MusicPlayer Error&#8221;), MB_OK | MB_ICONERROR);<br \/>\n\u00a0\u00a0\u00a0\u00a0 return;<br \/>\n\u00a0\u00a0\u00a0\u00a0}<br \/>\n\u00a0\u00a0 \u00a0\u00a0lstrcpy(szFileName[iNum++], szPath);<br \/>\n\u00a0\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_ADDSTRING, 0, (LPARAM)wfd.cFileName);<br \/>\n\u00a0\u00a0\u00a0\u00a0\/\/MessageBox(NULL, szPath, &#8220;&#8221;, MB_OK);<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0}while(FindNextFile(hFind, &amp;wfd));<br \/>\n\u00a0FindClose(hFind);<br \/>\n\u00a0iPlayListIndex = iNum-1;\/\/\u52a0\u5165\u7684\u6700\u540e\u4e00\u4e2a\u6587\u4ef6<br \/>\n\u00a0\/\/\u8bbe\u7f6e\u9009\u4e2d\u9879<br \/>\n\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_SETCURSEL, (WPARAM)iPlayListIndex, 0);<br \/>\n\u00a0\/\/\u64ad\u653e\u9009\u4e2d\u9879<br \/>\n\u00a0Play(hwnd, iPlayListIndex);\u00a0<br \/>\n}<\/p>\n<p>BOOL Save()<br \/>\n{<br \/>\n\u00a0\/*\u5934\u6587\u4ef6#include &lt;dir.h&gt;<br \/>\n\u00a0\u00a0TCHAR szBuffer[MAX_PATH];<br \/>\n\u00a0 \u00a0TCHAR szPath[MAX_PATH];<br \/>\n\u00a0 \u00a0TCHAR szListPath[MAX_PATH];<br \/>\n\u00a0 \u00a0getcwd(szBuffer, MAX_PATH);\/\/\u53d6\u5f97\u5f53\u524d\u5de5\u4f5c\u76ee\u5f55<br \/>\n\u00a0 \u00a0GetShortPathName(szBuffer, szPath, MAX_PATH);<br \/>\n\u00a0 \u00a0wsprintf(szListPath, &#8220;%s\\\\%s&#8221;, szPath, &#8220;MusicPlayer.list&#8221;);<br \/>\n\u00a0 \u00a0*\/<br \/>\n\u00a0 \u00a0\/\/\u4ee5\u4e8c\u8fdb\u5236\u5f62\u5f0f\u3001\u5206\u5757\u5b58\u50a8\u64ad\u653e\u5217\u8868<br \/>\n\u00a0\u00a0FILE* fp;<br \/>\n\u00a0if((fp=fopen(&#8220;C:\\\\MusicPlayer.list&#8221;, &#8220;wb&#8221;)) == NULL)<br \/>\n\u00a0\u00a0return false;<br \/>\n\u00a0for(int i = 0; i &lt; iNum; i++)<br \/>\n\u00a0{<br \/>\n\u00a0\u00a0fwrite(&amp;szFileName[i], sizeof(TCHAR)*MAX_PATH, 1, fp);\/\/\u5206\u5757\u5b58\u50a8<br \/>\n\u00a0}<br \/>\n\u00a0fclose(fp);<br \/>\n\u00a0return true;<br \/>\n}<\/p>\n<p>BOOL Load(HWND hwnd)<br \/>\n{<br \/>\n\u00a0\/\/\u4ee5\u4e8c\u8fdb\u5236\u5f62\u5f0f\u8bfb\u53d6\u64ad\u653e\u5217\u8868<br \/>\n\u00a0FILE* fp;<br \/>\n\u00a0if((fp=fopen(&#8220;C:\\\\MusicPlayer.list&#8221;, &#8220;rb&#8221;)) == NULL)<br \/>\n\u00a0\u00a0return false;<br \/>\n\u00a0fseek(fp, 0, 2);\/\/\u79fb\u52a8\u6307\u9488\u5230\u6587\u4ef6\u5c3e<br \/>\n\u00a0 \u00a0int n = ftell(fp);\/\/\u68c0\u6d4b\u5f53\u524d\u6307\u9488\u4f4d\u7f6e\uff0c\u5f97\u5230\u6587\u4ef6\u957f\u5ea6\u3002<br \/>\n\u00a0rewind(fp);\/\/\u5c06\u6307\u9488\u590d\u4f4d\u5230\u6587\u4ef6\u5934<br \/>\n\u00a0if(0 == n)<br \/>\n\u00a0\u00a0return true;<br \/>\n\u00a0n = n\/(sizeof(TCHAR)*MAX_PATH);<br \/>\n\u00a0while(n&#8211;)<br \/>\n\u00a0{\u00a0<br \/>\n\u00a0\u00a0PSTR pszFileName = NULL;\/\/\u6587\u4ef6\u540d\u8d77\u59cb\u5730\u5740<br \/>\n\u00a0\u00a0fread(szFileName[iNum], sizeof(TCHAR)*MAX_PATH, 1, fp);\/\/\u5206\u5757\u8bfb\u53d6<br \/>\n\u00a0\u00a0pszFileName = strrchr(szFileName[iNum++], &#8216;\\\\&#8217;);\/\/\u8fd4\u56deszFileName[iNum++]\u91cc&#8217;\\\\&#8217;\u6700\u540e\u51fa\u73b0\u7684\u4f4d\u7f6e<br \/>\n\u00a0\u00a0if(pszFileName++)\/\/\u5982\u679c\u6709&#8217;\\\\&#8217;\u5219pszFileName++\u4e3a\u6587\u4ef6\u540d\u8d77\u59cb\u5730\u5740<br \/>\n\u00a0\u00a0{<br \/>\n\u00a0\u00a0\u00a0SendMessage(GetDlgItem(hwnd, IDC_LST1), LB_ADDSTRING, 0, (LPARAM)pszFileName);\/\/\u6dfb\u52a0\u5230ListBox\u91cc<br \/>\n\u00a0\u00a0}<br \/>\n\u00a0}<br \/>\n\u00a0fclose(fp);<br \/>\n\u00a0if(iNum)\/\/\u5982\u679c\u6709\u97f3\u4e50\u5219\u64ad\u653e\u7b2c\u4e00\u9996\u3002<br \/>\n\u00a0\u00a0SendMessage(hwnd, WM_COMMAND, IDC_BTNNEXT, 0);<br \/>\n\u00a0return true;<br \/>\n}<\/p>\n<p><a href=\"http:\/\/115.29.108.60\/wp-content\/uploads\/2009\/09\/MusicPlayer.exe\">MusicPlayer V1.2<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4fee\u589eV1.1\u4e2d\u5df2\u77e5bug\uff1b \u81ea\u52a8\u64ad\u653e\u4e0b\u4e00\u9996\uff1b \u6700\u5c0f\u5316\u5230\u6258\u76d8\uff1b \u81ea\u52a8\u52a0\u8f7d\u548c\u4fdd\u5b58\u64ad\u653e\u5217\u8868\u3002 \/\/\u8fde\u63a5\u5e93 \/\/mci [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23],"tags":[],"class_list":["post-190","post","type-post","status-publish","format-standard","hentry","category-windows"],"_links":{"self":[{"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/posts\/190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/115.29.108.60\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=190"}],"version-history":[{"count":7,"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions"}],"predecessor-version":[{"id":865,"href":"http:\/\/115.29.108.60\/index.php?rest_route=\/wp\/v2\/posts\/190\/revisions\/865"}],"wp:attachment":[{"href":"http:\/\/115.29.108.60\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/115.29.108.60\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=190"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/115.29.108.60\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}