欢迎来到天天文库
浏览记录
ID:21561832
大小:25.00 KB
页数:5页
时间:2018-10-22
《桌面卡通音乐播放器的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、桌面卡通音乐播放器的设计与实现 摘要 计算机上的音乐播放软件,可以方便的满足人们对于音乐播放的各种功能。同时,桌面小精灵程良好的人机交互体验,得到了很多用户的肯定和青睐。本文设计一款基于桌面小精灵的音乐播放软件,结合音乐播放器和桌面小精灵程序的优点,最大限度地满足人们对于音乐休闲的多样性和便利性。 【关键词】音乐播放软件播放器设计 1系统功能模块设计 本软件实现如下能模块,桌面小精灵模块,音乐播放器模块和托盘模块。 桌面小精灵功能模块实现一个能在桌面跑动的动态卡通形象,使桌面小精灵能够被用户挪到想要的地方,拖拽时,桌面小精灵动画不能停止,拖拽不带重影。 音乐播放器功能模块包
2、括音乐播放和音乐列表两个子模块: 音乐播放子模块需要实现以下功能:播放,暂停,停止,音量调节,播放进度调整。 音乐列表子模块实现:建立音乐列表,能正常取出上一首和下一首音乐开始播放,若到达列表头尾,则循环转到尾头开始播放。显示和储存分离,音乐列表对话框能隐藏,移动时跟随小精灵。音乐列表接受文件拖拽,双击条目则可以播放该条目的音乐。 托盘功能模块实现:托盘图标可以显示托盘消息,双击托盘图标能够显示已隐藏的桌面小精灵。右键托盘图标能够弹出菜单。并且,桌面小精灵应该始终在最前,以保障用户能够随时使用。 2系统功能具体实现 2.1桌面精灵的实现原理和步骤 实现桌面精灵的步骤如下:
3、(1)获取桌面窗口句柄:DeskDC=GetDC(GetDesktopWindow()); (2)创建一个内存位图,将桌面精灵的卡通形象存入到此位图中,为此,可以封装一个方法: VoidMainDlg::SavebackElfin(BKCanvasTCanvas){//内存位图中的画布对象 w:integer;//画布对象的宽度 h:integer;//画布对象的高度 x:integer;//保存的x坐标 y:integer;}//保存的y坐标 (3)将卡通精灵拷贝到桌面的绘图区域; (4)将第二步生成的内存位图拷贝到桌面位置,完成一帧动画的显示。循环实现1-4步,实现桌
4、面小精灵的连续移动画面。 2.2音乐播放器功能模块的实现 音乐播放可以使用很多技术,如playsound,MCI,DirectX等,本文采用了功能强大且易用的MCI(MediaControlInterface)媒体控制接口。MCI是向基于Windows操作系统的应用程序,它提供了高层次的控制媒体设备接口的能力。本文实现的CDeskMP3类对MCI的音乐播放功能进行了封装,实现了音乐播放器所需的各种功能。 classCDeskMp3 { public: CDeskMp3(); CDeskMp3(CStringpath); voidLoadMp3(CStringpath);
5、 voidPlay(); voidPlay(intstart); voidPlay(intstart,intend); voidPlayLoop(); voidPause(); voidStop(); voidReplay(); voidClose(); voidSetVolume(intvol); intGetPresentPos(); intGetMusicLength(); private: DWORDdwReturn; DWORDm_dwLength; MCIDEVICEIDm_deviceId; boolisopened; UINTflag;
6、}; 2.3托盘功能模块的实现 托盘功能实现具体如下:托盘图标在主窗口中创建,使用托盘结构体NOTIFYICONDATA来创建对象nid;加入托盘时定义好托盘属性:标志位,消息名称;加载图标以及托盘名,用Shell_NotifyIcon函数把托盘加入托盘区;同时在托盘释放的时候需要将托盘从托盘区删除。 voidCYourLandDlg::AddTray() { nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA); nid.hWnd=this->m_hWnd; nid.uID=IDR_MAINFRAME; nid.uFlags=NIF_ICON
7、
8、NIF_MESSAGE
9、NIF_TIP; nid.uCallbackMessage=WM_SHOWTASK; nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)); tcscpy(nid.szTip,TEXT("我是一个托盘图标")); Shell_NotifyIcon(NIM_ADD,&nid); } 3结束语 本文主要实
此文档下载收益归作者所有