首页 理论教育 实例:基于CComDisc类的CD播放器

实例:基于CComDisc类的CD播放器

时间:2023-11-16 理论教育 版权反馈
【摘要】:本节将在CComDisc类的基础上逐步完成一个具有播放、快进、快退、设置功能的CD音频播放器。添加控件后的CD播放器对话框如图7-13所示。菜单项,把CComDisc类的声明文件“ComDisc.h”和实现文件“ComDisc.cpp”添加到工程中。需要在“CDPlayerDlg.h”文件头添加#include "ComDisc.h"语句,以便在“CDPlayerDlg.cpp”中使用“ComDisc.h”中定义的CComDisc类。在“CDPlayerDlg.h”中定义的CCDPlayerDlg类声明中添加如下成员变量:下面是音频播放器程序的功能实现过程。图7-15CD播放器运行图

实例:基于CComDisc类的CD播放器

本节将在CComDisc类的基础上逐步完成一个具有播放、快进、快退、设置功能的CD音频播放器。

1. 创建应用程序框架

(1)选择File菜单下的New 命令,在新建工程对话框中选择MFC AppWizard(exe) 新建一个工程,名字为CDPlayer,单击OK进入下一步。

(2)在向导首页(AppWizard)Step1对话框中,设置应用类型为基于对话框类型的(Dialog based),单击“Finish”按钮完成工程设置。

2. 应用程序界面设计

(1)CD播放器对话框设计。

在工作区(Workspace)窗口单击资源视图标签(ResourceView),在Dialog一栏中打开主对话框(ID为IDD_CDPLAYER_DIALOG),删除OK及Cancel按钮和文本,并在对话框中添加控件。添加控件后的CD播放器对话框如图7-13所示。

CD播放器对话框的控件属性设置见表7-14。

表7-14 CD播放器对话框的控件属性设置

(2)播放设置对话框设计。

同样在工作区(Workspace)窗口单击资源视图标签(ResourceView),在对话框Dialog一栏中新建一个对话框,取名为“播放设置”,并设置其ID为IDD_SETTING,并在对话框中添加控件。添加控件后的播放设置对话框如图7-14所示。

图7-13 CD播放器对话框

图7-14 播放设置对话框

播放设置对话框的控件属性设置见表7-15。

表7-15 播放设置对话框控件属性设置

然后为IDC_SETTING对话框添加一个新类。通过资源视图,打开IDC_SETTING 对话框,按“Ctrl+W”快捷键,将弹出类向导(ClassWizard)对话框,选择Creat a new class,选择基类为CDialog, 类名取为 CCDPlaySet,保存所有的修改。

(3)通过ClassWizard给控件映射变量,变量的映射信息见表7-16。

表7-16 变量映射列表

3. 添加消息响应函数

向所有的按钮添加BN_CLICKED消息函数,并为下拉框添加CBN_SELCHANGE消息函数,消息函数列表见表7-17。

表7-17 消息函数表

4. 消息响应函数的实现

(1)在工作区(Work Space)窗口单击文件视窗(FileView)标签,切换到文件,在工程标识上单击鼠标右键,在快捷菜单中选择“Add Files to Project…”菜单项,把CComDisc类的声明文件“ComDisc.h”和实现文件“ComDisc.cpp”添加到工程中。

(2)在选择工程(Project)菜单下的设置(Setting)菜单项,打开工程设置对话框,把“winmm.lib”加入工程。

(3)需要在“CDPlayerDlg.h”文件头添加#include "ComDisc.h"语句,以便在“CDPlayerDlg.cpp”中使用“ComDisc.h”中定义的CComDisc类。

(4)在“CDPlayerDlg.h”中定义的CCDPlayerDlg类声明中添加如下成员变量:

下面是音频播放器程序的功能实现过程。

(1)OnInitDialog()函数。

OnInitDialog()函数需要完成在主对话框创建后的初始化工作。OnInitDialog()函数在主对话框显示之前调用。在初始化函数中,首先调用m_CD对象的Open()函数打开一个CD,如果打开不成功,则通过Open()函数返回值dwReturn得到错误码,并调用micGetErrorString函数获得代码的字符串描述告诉用户出错的原因。如果打开成功,则获得CD总轨道数,并按照顺序依次向下拉控件的 m_cboTrack变量添加 CD曲目。这样,在主对话框弹出后,下拉控件会显示CD的曲目描述。

OnInitDialog()函数的实现见程序清单7-66。(www.xing528.com)

程序清单7-66 CCDPlayerDlg::OnInitDialog()函数

(2)播放按钮消息函数。

该函数首先判断光驱是否被正确打开,如果是打开,则调m_CD.Play()播放CD音频。播放消息函数OnPlay()的实现见程序清单7-67。

程序清单7-67 CCDPlayerDlg::OnPlay()函数

(3)播放设置按钮消息函数。

该函数实现弹出设置对话框,通过对设置对话框进行设置,返回设置值,并通过该值对CD音频的播放进行控制,从设置对话框中得到CD 音频播放的开始位置和终止位置。在该函数中声明一个CCDPlaySet对象dlg,打开对话框并设置后调用m_CD.Play()播放CD音频。播放设置消息函数的实现见程序清单7-68。

程序清单7-68 CCDPlayerDlg::OnPlayset()函数

(4)暂停按钮消息函数。

暂停按钮消息函数功能是暂停当前CD音频播放。暂停函数的实现见程序清单7-69。

程序清单7-69 CCDPlayerDlg::OnPause()函数

(5)弹出光驱按钮消息函数。

当此时有音频在播放时,该函数先关闭音频设备,然后弹出光驱。弹出光驱消息函数的实现见程序清单7-70。

程序清单7-70 CCDPlayerDlg::OnEject()函数

(6)前进和后退按钮消息函数。

实现前进和后退的功能。前进按钮消息函数的实现见程序清单7-71。

程序清单7-71 CCDPlayerDlg::OnNext()函数

前进按钮消息函数的实现见程序清单7-72。

程序清单7-72 CCDPlayerDlg::OnPrev()函数

(7)下拉控件改变消息函数。

下拉控件的主要功能是在打开CD音频后,可供用户选择播放不同的的音道,每个音道都和一首歌相对应,每次改变都需从音道的开始位置播放CD音频。下拉控件改变消息函数的实现见程序清单7-73。

程序清单7-73 CCDPlayerDlg::OnSelchangeTrack()函数

5. 运行程序

代码添加结束后,保存所作的工作,然后编译,运行该工程,我们就可以得到一个播放CD音频的播放器。运行结果如图7-15所示。

图7-15 CD播放器运行图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈