已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南省2026年选调生选拔历年真题汇编带答案解析
- 2026年版社会工作者(初)《社会工作实务》考试题库带答案解析
- 2026年设备监理师之设备监理合同考试题库带答案(综合题)
- 2025湖南省社会科学院(湖南省人民政府发展研究中心)第二批高层次人才招聘3人备考题库带答案解析
- 长沙市雨花区社区工作者考试题库及答案解析(夺冠)
- 2025新疆丰达棉业科技有限责任公司招聘2人笔试模拟试卷附答案解析
- 2025安徽宿州市砀山县中医医院招聘编外工作人员9人参考题库附答案解析
- 2026云南省普洱市青年人才专项招引31人笔试备考试卷附答案解析
- 2026年陕西省选调生招录(面向北京师范大学)历年真题库带答案解析
- 2026陕西省选调生招录考试已发布备考公基题库带答案解析
- 压力管道操作安全培训课件
- 2025年公安机关人民警察职业道德和纪律要求面试题解析
- 2024-2025学年六年级上册期中考试语文试卷(江苏卷)
- 战术战伤救护培训课件
- 全屋定制营销知识培训
- 小儿细菌性肠炎课件
- 2025年医院副院长考试题库
- 2025年达州小升初招生考试题库
- 低压湿式气柜维护维修规程
- 2024年江西省公务员考试行测真题及1套完整答案详解
- DB43∕T 3020-2024 不动产登记业务规范
评论
0/150
提交评论