音乐播放器界面设计.docx_第1页
音乐播放器界面设计.docx_第2页
音乐播放器界面设计.docx_第3页
音乐播放器界面设计.docx_第4页
音乐播放器界面设计.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

音乐播放器(界面设计)学号:姓名: 1 功能介绍设计的音乐播放器是能够实现音乐的播放、暂停、声音控制、播放时间和歌曲的选择用户可以选择播放的音乐,播放器也可以显示该音乐的歌曲名以及歌曲的播放总时间,播放进度等歌曲的相关功能;用户还可以通过音乐增减按钮调节声音大小。2 各功能模块图音乐播放器声音控制停止重复隐藏播放暂停 3设计思想通过在IDD_MUSICPLAY_DIALOG 对话框中添加控件,并设置相应的属性值。并且为其添加进度条ID为:IDC_SLIDER1,音量控制ID为:IDC_SLIDER2一个大致的轮廓已经出来,没有类似酷我或天天静音的皮肤,但通过 LoadBitmap() 加载位图,来改变现在的外观,4 播放器界面的设计创建一个基于对话框的工程命名为MusicPlayer。并为对话框添加控制按钮用Photoshop为播放器设计一个背景图像并将其载入工程重载对话框的OnCtlColor()HBRUSH CMusicPlayerDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);/ TODO: Change any attributes of the DC hereif( nCtlColor = CTLCOLOR_DLG)return m_brBack;/ TODO: Return a different brush if the default is not desiredreturn hbr;为播放器添加不规则个性按钮。轴线需要在对话框类中定义按钮的ID及按钮变量。enumMY_OPEN=1010,MY_PLAY=1011,MY_PAUSE=1012, MY_STOP=1013,MY_REPEAT=1014,MY_HIDE=1015, MY_EXIT=1016,MY_MIN=1017,MY_MAX=1018,MY_QUITE=1019;CMybutton m-Open,M-Play,m_Pause,m_Stop m-Repeat,m_Hide,Exit,m_Min,m_Max,m_Quite:在对话框的初始化框中创建这些按钮对象BOOL CMusicPlayerDlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small iconm_bmBack.DeleteObject();m_brBack.DeleteObject();m_bmBack.LoadBitmap(IDB_BACK);m_brBack.CreatePatternBrush(&m_bmBack);/ TODO: Add extra initialization hereHRGN c;HRGN r1;int x,y,i = 0;x = 37; y = 115;COLORREF ForeColor,hoverColor,downColor; ForeColor = RGB(50, 50, 50);hoverColor = RGB(120, 120, 120);downColor = RGB(180, 180, 120);HRGN min;min = CreateRectRgn(0,0,20,15);m_Min.Create(_, WS_CHILD | WS_VISIBLE, CPoint(320, 7), min, this, MY_MIN, 1,ForeColor,downColor ,hoverColor , GetSysColor(COLOR_BTNFACE); m_Max.Create(|, WS_CHILD | WS_VISIBLE | WS_DISABLED, CPoint(346, 7), min, this, MY_MAX, 1,ForeColor,downColor ,hoverColor , GetSysColor(COLOR_BTNFACE); m_Quite.Create(X, WS_CHILD | WS_VISIBLE, CPoint(372, 7), min, this, MY_QUITE, 1,ForeColor,downColor ,hoverColor , GetSysColor(COLOR_BTNFACE); c = CreateRectRgn(8, 0, 55, 31);r1 = CreateEllipticRgn(48, 8, 15 + 48, 15 + 8);CombineRgn(c, c, r1, RGN_OR);m_Open.Create(Open, WS_CHILD | WS_VISIBLE, CPoint(x + 48*(i+), y), c, this, MY_OPEN, 1,ForeColor,downColor ,hoverColor , GetSysColor(COLOR_BTNFACE); r1 = CreateEllipticRgn(0, 8, 15, 15 + 8);CombineRgn(c, c, r1, RGN_DIFF);m_Play.Create(Play, WS_CHILD | WS_VISIBLE, CPoint(x + 48*(i+), y), c, this, MY_PLAY, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);m_Pause.Create(Pause, WS_CHILD | WS_VISIBLE, CPoint(x + 48*(i+), y ), c, this, MY_PAUSE, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);m_Stop.Create(Stop,WS_CHILD |WS_VISIBLE, CPoint(x + 48*(i+), y ), c, this, MY_STOP, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);m_Repeat.Create(Repeat, WS_CHILD |WS_VISIBLE, CPoint(x + 48*(i+), y), c, this, MY_REPEAT, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);m_Hide.Create(Hide, WS_CHILD |WS_VISIBLE, CPoint(x + 48*(i+), y), c, this, MY_HIDE, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);c = CreateRectRgn(8, 0, 63, 31);r1 = CreateEllipticRgn(0, 8, 15, 15 + 8);CombineRgn(c, c, r1, RGN_DIFF);m_Exit.Create(Exit, WS_CHILD |WS_VISIBLE, CPoint(x + 48*(i+), y ), c, this, MY_EXIT, 1, ForeColor, downColor ,hoverColor, GetSysColor(COLOR_BTNFACE);DeleteObject(c);DeleteObject(r1);m_ctlSlider.SetRange(0,1000);m_voice.SetRange(0,10);m_voice.SetPos(7);SetWindowText(TT-Play);return TRUE; / return TRUE unless you set the focus to a control绘制播放器界面由于有些音频文件信息及播放状态需要爱界面上时时更新,所以要重载OnPaint()函数。void CMusicPlayerDlg:OnPaint() CPaintDC dc(this); / device context for paintingif(m_bOpen)CSize size;CDC memDC,maskDC;CString str;COLORREF fileColor,timeColor,infoColor;size = dc.GetTextExtent(m_strMusic);fileColor = RGB(156,196,94);timeColor = RGB(255,0,0);infoColor = RGB(105,121,148);m_titleRect.left -= 1;if(m_titleRect.left = 0)dc.BitBlt(30 + m_titleRect.left,30,size.cx - m_titleRect.left ,size.cy,&maskDC,m_titleRect.left,0,MERGEPAINT);dc.BitBlt(30 + m_titleRect.left,30,size.cx - m_titleRect.left,size.cy,&memDC,m_titleRect.left,0,SRCAND);elsedc.BitBlt(30,30,size.cx + m_titleRect.left,size.cy,&maskDC,0,0,MERGEPAINT);dc.BitBlt(30,30,size.cx + m_titleRect.left,size.cy,&memDC,0,0,SRCAND);dc.SetTextColor(infoColor);if(m_bRepeat)switch(m_state)case 1:str.Format(状态: 播放 - Repeat);break;case 2:str.Format(状态: 暂停 - Repeat);break;case 3:str.Format(状态: 播放 - Repeat);break;elseswitch(m_state)case 1:str.Format(状态: 播放 - No Repeat);break;case 2:str.Format(状态: 暂停 - No Repeat);break;case 3:str.Format(状态: 停止 - No Repeat);break;dc.TextOut(30,48,str);dc.SetTextColor(fileColor);str.Format(%s - %s, m_Author,m_title);dc.TextOut(30,65,str);dc.SetTextColor(timeColor);str.Format(%02d:%02d:%02d/%02d:%02d:%02d,int(m_curPos) / 360,int(m_curPos) / 60, int(m_curPos )% 60, int(m_time) / 360,int(m_time) / 60, int(m_time) % 60);dc.TextOut(260,50,str);监控音乐的播放器进度为了能都时时更新进度滑块的位置,以及滚轮标题的位置,还需要实现定时器事件在OnPlay()函数中启动了一个定时器。 SetTimer(0,20,NULL);实现定时器处理函数,更新当前界面显示信息。void CMusicPlayerDlg:OnTimer(UINT nIDEvent) m_changed+;m_curPos = m_ActiveMovie.GetCurrentPosition();m_ctlSlider.SetPos(m_curPos);CRect rect;rect.left = 30;rect.top = 30;rect.right = 398;rect.bottom = 50;CRgn rgn1,rgn2;rgn1.CreateRectRgnIndirect(&rect);rgn2.CreateRectRgn(260,50,350,65);rgn1.CombineRgn(&rgn1,&rgn2,RGN_OR);Invalidat

温馨提示

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

评论

0/150

提交评论