音量增大、音量减小、静音、快进、快退等功能,主要调用CWMPControl和CWMPPlayer类中的成员函数来进行实现。
对于播放列表,这次设计使用了SetWindowPos函数来改变一个子窗口弹出的尺寸和方向,并一些相关的函数实现了保存列表、删除列表、删除当前的功能。对应播放列表,我还添加了播放模式选择的功能,提供了顺序播放、随即播放、单曲循环三种选择。这当中运用的ontimer()函数和settimer()函数来控制播放模式。参照以上的设计思想,流程图如图1所示:
图1 流程图
4 软件设计
4.1设计步骤
首先,打开Microsoft Visual Studio6.0软件,新建一个工程如图2所示,以HuangJianfei为工程名,然后将此工程定义为基于对话框的MFC应用程序如图3所示,点击完成就成功建立了一个基于对话框的工程。
图2 工程建立
图3基于对话框的MFC程序
在建立好工程之后,首先是Windows Media Player控件的添加:建立空白对话框之后,在对话框的空白处单击鼠标右键,选择Insert ActiveX Control菜单项。选择Windows Media Player控件,如图4所示。加入控件后,此时该控件与该对话框并没有联系,需要对其进行变量的关联。
图4 Windows Media Player控件的添加
添加完该控件之后可以发现,该控件与右边控件工具栏添加的控件的形式与功能完全不同,是一种更为高级的控件,将该控件名改为IDC_player,如图5所示:
图5 Windows Media Player控件
虽然已经添加了该控件,但是可以发现,该控件并没有与工程中的对话框发生任何联系,所以需要对其进行变量的关联,所属类为HuangJianfei类,变量类型为CWPPlayer4如图6所示:
图6 关联变量
关联变量之后,才算是真正的添加完了该控件,可以发现在关联变量之后,控件工具栏多了Windows Media Player控件的选项,并且在Source Files中增加了17个类,相应的头文件也增加了17个,如图7所示:
图7 添加控件后的变化
其中最主要的类为Cwmpplayer4,Cwmpcontrols,Cwmpmedia,Cwmpplaylist,Cwmpsettings五大类。Cwmpplayer4类主要是关于对其他类的对象的调用以及基本的控件功能的实现,提供了与Windows Media Player控件进行交互的基本方法,其中部分成员函数还能够进一步获取得到其他相关类对象的实例;Cwmpcontrols类主要是对控件的更多的操作;Cwmpmedia类主要是对于媒体文件资源的一些操作;Cwmpplaylist类主要是关于播放列表的操作;Cwmpsettings类主要是对于媒体文件中的一些基本设置的操作。
对于该控件的添加以及内部函数的理解需要较多时间熟悉,添加完此关键控件之后,进行界面的设计。
4.2界面设计
首先是打开按钮,用于媒体文件的打开。然后依次是,播放、暂停、保存列表、清空列表、删除当前、隐藏/展开、静音、播放、停止、退出等按钮。对其进行变量的关联,以及ID的修改,修改结果如表1、表2所示:
表1 控件ID以及关联变量
控件Caption 按钮ID 关联变量类型 关联变量名称 WMPlayer IDC_player CWMPlayer4 m_HuangJianfei 表2 控件ID以及对应响应函数
控件Caption 按钮ID 消息响应函数 打开 IDC_OPEN OnOpen() 播放 IDC_PLAY OnPlay() 暂停 IDC_PAUSE OnPause() 保存列表 IDC_SAVELIST OnSavelist() 清空列表 IDC_DELLIST OnDellist() 删除当前 IDC_DELLISTCUR OnDellistcur() 双击播放列表 IDC_LIST1 OnDblclkList1() 隐藏/展开 IDC_ONLIST OnOnlist() 列表框 IDC_LIST1 OnDblclkList1() 静音 IDC_MUTE OnMute() 表3 控件ID以及对应响应函数
控件Caption 按钮ID 消息响应函数 停止 IDC_STOP OnStop() 退出 IDC_EXIT OnExit() 关于 IDC_ABOUT OnAbout() 以上为有对应控件的对象的关联,除了有对应控件的,还需要有Windows Media Player控件所生成的17个类中的几个重要的类进行对象的定义,可知,对于成员对象的定义和成员函数的声明都放在头文件中,此次设计共主要用到其中3个类 ,因为设计了一个退出提醒弹出框,所以也要对其定义,具体如表3所示:
表4 其他类及对应对象
类名 对象名 类名 对象名 CWMPControls m_Control CWMPPlaylist m_Playlist CWMPMedia m_Media CString m_PathName CWMPSettings m_Setting CString m_FileName 除了对各个控件关联变量以及消息响应函数,还要对对话框类进行消息响
上一篇:
基于vc的图的遍历算法的动态演示系统_毕业论文
下一篇:
超市进销存管理系统的开发