实验8 题1与题2的具体步骤.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验8 题1与题2的具体步骤

编写代码实现制作一个音频文件播放器 创建一个基于对话框的工程,工程名为ex123。在第二步的please enter a title for your dialog项中输入对话框标题:“MyWAVPlayer”。 为工程添加多媒体组件。选择菜单:工程—添加到工程—Components and Controls菜单项,在弹出的Components and Controls Gallery对话框中双击Visual C++ Components 文件夹,然后选择Windows Multimedia library项,按Insert按钮:在弹出的对话框中按“确定”按钮,在继续弹出的一个消息框中按“是”按钮,则多媒体组件被加入到当前工程中。选择Components and Controls Gallery对话框中的关闭按钮,关闭该对话框。 定制对话框。将IDD_EX123_DIALOG对话框(MyWAVPlayer)中的静态文本控件以及“取消”按钮控件删除。将“确定”按钮的标题改为“关机”。新添3个按钮控件,其ID和标题分别设置如下。 按钮 ID值 Caption 播放按钮 IDC_BUTTON_PLAY 播放 停止按钮 IDC_BUTTON_STOP 停止 打开按钮 IDC_BUTTON_OPEN 打开 为对话框类添加3个成员变量,并在构造函数中对它们进行初始化。3个成员变量分别用来表示当前状态为播放、暂停状态和设备ID,如下: 变量类型 变量名 访问类型 BOOL m_bIsPlaying protected BOOL m_bIsPause protected MCIDEVICEID m_MCIDeviceID protected 构造函数中的初始化代码: CEx123Dlg::CEx123Dlg(CWnd* pParent /*=NULL*/) : CDialog(CEx123Dlg::IDD, pParent) { m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); m_bIsPause=FALSE; m_bIsPlaying=FALSE; m_MCIDeviceID=0; } 为CEx123Dlg对话框类添加3个成员函数: 1)利用类向导添加WM_DESTROY消息的处理函数,代码如下: void CEx123Dlg::OnDestroy() { CDialog::OnDestroy(); //退出程序前先停止声音播放,再关闭设备 //这里忽略了错误处理 mciSendCommand(m_MCIDeviceID,MCI_STOP,MCI_WAIT,NULL); mciSendCommand(m_MCIDeviceID,MCI_CLOSE,MCI_WAIT,NULL); } 2)添加一个处理MCI错误的函数。在ClassView页面中,右键单击CEx123Dlg类,选择Add Member Function;添加成员函数类型为viod,函数描述为:ShowMCIError(DWORD dwError);访问方式为:private。函数代码内容为: void CEx123Dlg::ShowMCIError(DWORD dwError) { char szErrorBuf[MAXERRORLENGTH]; MessageBeep(MB_ICONEXCLAMATION); if(mciGetErrorString(dwError,(LPSTR)szErrorBuf,MAXERRORLENGTH)) MessageBox(szErrorBuf,MCI错误,MB_ICONEXCLAMATION); else MessageBox(未知错误!,MCI错误,MB_ICONEXCLAMATION); } 3)添加MM_MCINOTIFY消息的消息映射和处理函数。由于类向导不支持该消息,必须手工进行添加,添加时不要忘记包括三项内容:函数原型、消息映射入口项和函数体。 在ex123Dlg.h文件中添加消息函数原型的声明: class CEx123Dlg : public CDialog { //省略部分代码 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnDestroy(); afx_msg LRESULT

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档