音乐播放器Cwin32SDK.doc_第1页
音乐播放器Cwin32SDK.doc_第2页
音乐播放器Cwin32SDK.doc_第3页
音乐播放器Cwin32SDK.doc_第4页
音乐播放器Cwin32SDK.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

简单的音乐播放器:Win32 SDK 编程 调用API函数Mcisendstring();增加托盘功能和单击右键弹出菜单功能。#include stdafx.h#include #include #include SHELLAPI.H#include #include resource.h#include #include #include mmsystem.h#include #include MainDlg.h#include #include #include #include #pragma comment(lib,shlwapi.lib)#define N 500#define N1 600#define M 124#define WM_SHELLNOTIFY WM_USER+5static struct open/存放歌曲信息 TCHAR szFileM;/存放歌曲路径 TCHAR vol256;/存放歌曲声音值 long volume;/存放转换为long类型的声音值 TCHAR shortnameM;/存放简化路径 TCHAR str730;/存放歌曲名称 TCHAR str960;/存放歌曲播放状态 TCHAR str630;/存放歌曲名称 TCHAR str835; TCHAR str1256; TCHAR str2256; TCHAR str5256; TCHAR str3100; TCHAR str4100; long temp,temp1; long i1,i2,i3,i6,lLength,lLength1,lLength2; dkN1; struct fram char FrameID4; /*用四个字符标识一个帧,说明其内容,稍后有常用的标识对照表*/char Size4; /*帧内容的大小,不包括帧头,不得小于*/char Flags2;/存放标志. frame;static struct musicinfoTCHAR header3;TCHAR title30;TCHAR artist30;TCHAR album 30;TCHAR year4;TCHAR comment30;informN1;static struct musicTCHAR title30;TCHAR artist30;TCHAR album 30;TCHAR time10;inform1N1; struct modedd/用于存放播放器退出时的状态。 long vold;int idx;int quit;/FileSystemObjectint ix; int pl;int ttott;char v255; zt=1000,0,0,100,0,0,NULL; struct musicqq TCHAR id3;TCHAR title30;TCHAR artist30;TCHAR zhuanji30;TCHAR time8;TCHAR comment30; mu; FILE *fp,*fp1,*fp2; static TCHAR cmdMAX_PATH+10,cmddMAX_PATH+10;/存放播放音乐的命令 static TCHAR cmdcMAX_PATH+10,cmdkjMAX_PATH+10; static TCHAR cmdtMAX_PATH+10; TCHAR sh100,folder100; TCHAR sqqq8,hd3; TCHAR playing256; long voldec=1000,volde; long iio=0; int ja=0,ia=0,ka=0,la=0,na=0; int jy=0,qxjy=0,li=1; int flag4=0,index=0; int flag=1,flag5; int flag1=0,flag2=0; int i,j,tot,ik=0,ikl=0; int i4=100,i5=0,cur=0,cur1,cur2,count=0; int tt,quite=0,stz=0; int insert=0; int insert1=0; int i9=0,j9=0,i10=0; int io=0; int total_size; int FSize; char ss10; char ssi10; char poo10; int seek=0; HWND hwndlist,hwnd,hwndwave; HMENU hMenu,hMenu3,hmenu; POINT point,point1,pt; WNDPROC OldWndProc; RECT test; /LPARAM lParam; int in=0; int pop; long s=10000; int rand1; HINSTANCE hInstance; NOTIFYICONDATA tuopan; LVCOLUMN lv; LVITEM lv1;void playmusic(HWND hwnd,int indx);void CALLBACK TimerProc (HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime); BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) switch(uMsg) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);case WM_SIZE: if(wParam = SIZE_MINIMIZED) tuopan.cbSize = sizeof(NOTIFYICONDATA); tuopan.hWnd = hWnd; tuopan.uID = IDI_ICON2; tuopan.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP; tuopan.uCallbackMessage = WM_SHELLNOTIFY; tuopan.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2); lstrcpy(tuopan.szTip,playing);/正在播放 ShowWindow(hWnd,SW_HIDE); Shell_NotifyIcon(NIM_ADD,&tuopan);/加到系统盘里 break;case WM_DESTROY: Shell_NotifyIcon(NIM_DELETE,&tuopan);case WM_NOTIFY:if(IDC_LIST1=wParam)NMHDR* pHeader=(NMHDR*)lParam;hwndlist=pHeader-hwndFrom;if(NM_DBLCLK=pHeader-code)for(in=0;incode)for(in=0;in=1)for(i=tot-1;i=0;i-)if(tt=i)wsprintf(sh,%s%d.,(tt+1);lv1.mask = LVIF_TEXT;lv1.iSubItem = 0;lv1.pszText = sh;ListView_InsertItem(hwndlist,&lv1);lv1.iSubItem = 1;lv1.pszText = inform1tt.title;ListView_SetItem(hwndlist,&lv1);lv1.iSubItem = 2;lv1.pszText = inform1tt.time;ListView_SetItem(hwndlist,&lv1);elsewsprintf(sh,%3d.,(i+1);lv1.mask = LVIF_TEXT;lv1.iSubItem = 0;lv1.pszText = sh;ListView_InsertItem(hwndlist,&lv1);lv1.iSubItem = 1;lv1.pszText = inform1i.title;ListView_SetItem(hwndlist,&lv1);lv1.iSubItem = 2;lv1.pszText = inform1i.time;ListView_SetItem(hwndlist,&lv1);count=ListView_GetItemCount(hwndlist);tot=count;i5=tot;insert1=count;insert=insert1;tuopan.cbSize = sizeof(NOTIFYICONDATA);tuopan.hWnd = hwnd;tuopan.uID = IDI_ICON2;tuopan.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;tuopan.uCallbackMessage = WM_SHELLNOTIFY;tuopan.hIcon = LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON2);lstrcpy(tuopan.szTip,dktt.str7);ShowWindow(hwnd,SW_HIDE);Shell_NotifyIcon(NIM_ADD,&tuopan);wsprintf(playing,%sn%sn%s,inform1tt.artist,inform1tt.title,inform1tt.album);SetDlgItemText(hwnd,IDC_PLAYING,playing);return TRUE;void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) switch(id) case IDC_OPEN:int nLen = 0;OPENFILENAME ofn;TCHAR szOpenFileNamesN*MAX_PATH; TCHAR szPathN*MAX_PATH;TCHAR szFileNameN*MAX_PATH;TCHAR* p;CheckRadioButton(hwnd,IDC_RADIO1,IDC_RADIO2,IDC_RADIO1); ZeroMemory(&ofn,sizeof(ofn);ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szOpenFileNames;ofn.lpstrFile0 = TEXT(0);ofn.nMaxFile = sizeof(szOpenFileNames);ofn.lpstrFilter = TEXT(Audio(*.mp3;*.wma;*.wav)0*.mp3;*.wma;*.wav0All(*.*)0*.*);ofn.nFilterIndex = 1;ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.hwndOwner = hwnd;ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;if (GetOpenFileName(&ofn) wsprintf(cmd,stop %s,dkcur.shortname);mciSendString(cmd,0,NULL);lstrcpyn(szPath, szOpenFileNames, ofn.nFileOffset);szPathofn.nFileOffset = 0;nLen = lstrlen(szPath);if( szPathnLen-1 != ) lstrcat(szPath, TEXT();p = szOpenFileNames + ofn.nFileOffset; ZeroMemory(szFileName, sizeof(szFileName);while( *p ) lstrcat(dki5.szFile,szPath); lstrcat(dki5.szFile,p); p += lstrlen(p) +1; i5+;j9=i5;for(i9=insert;i90;ia-) if(dki9.szFileia=.) ka=ia; break; for(ia=ja;ia0;ia-) if(dki9.szFileia=) ja=ia; break; for(la=ja+1;la0;ia-) if(dki9.szFileia=.) ka=ia; break; for(ia=ja;ia0;ia-) if(dki9.szFileia=) ja=ia; break; for(la=ja+1;la0;ia-) if(dki9.szFileia=.) ka=ia; break; for(ia=ja;ia0;ia-) if(dki9.szFileia=) ja=ia; break; for(la=ja+1;laka;la+) dki9.str7na=dki9.szFilela; na+;dki9.str7na=0;strcpy(informi9.title,dki9.str7);informi9.title29=0;ja=0,ia=0,ka=0,la=0,na=0;for(i9=insert;i9j9;i9+)wsprintf(inform1i9.title,%s,informi9.title);/informtt.titlewsprintf(inform1i9.artist,%s,informi9.artist);/informtt.titlewsprintf(inform1i9.album,%s,informi9.album);/informtt.titlezt.pl=insert; fp1=fopen(D:/dsq_Player/list/ZT.dat,w); fwrite(&zt, sizeof(struct modedd),1,fp1); fclose(fp1);fp=fopen(D:/dsq_Player/list/list1.txt,a);for(tt=insert;ttj9;tt+)fwrite(&dktt.shortname,sizeof(dktt.shortname),1,fp);fclose(fp);fp=fopen(D:/dsq_Player/list/listname.txt,a);for(tt=insert;tt=0;i-)if(tt=i)wsprintf(ssi,%d.,tt+1);wsprintf(sh,%s%s,ssi);lv1.mask = LVIF_TEXT;lv1.iSubItem = 0;lv1.pszText = sh;ListView_InsertItem(hwndlist,&lv1);lv1.iSubItem = 1;lv1.pszText =inform1tt.title;L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论