欢迎来到天天文库
浏览记录
ID:41654408
大小:64.53 KB
页数:8页
时间:2019-08-29
《实验8题1与题2的具体步骤》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1、编写代码实现制作一个音频文件播放器(1)创建一个基于对话框的工程,工程名为exl23o在第二步的pleaseenteratitleforyourdialog项中输入对话框标题:"MyWAVPlayer"。(2)为工程添加多媒体组件。选择菜单:工程一>添加到工程一ComponentsandControls菜单项,在弹出的ComponentsandControlsGallery对话框中双击VisualC++Components文件夹,然后选择WindowsMultimedialibrary项,按Insert按钮:在弹出的对话框中按“确定
2、”按钮,在继续弹出的一个消息框屮按“是”按钮,则多媒体组件被加入到当前工程中。选择ComponentsandControlsGallery对话框中的关闭按钮,关闭该对话框。(3)定制对话框。将IDD_EX123_DIALOG对话框(MyWAVPlayer)中的静态文本控件以及“取消”按钮控件删除。将“确定”按钮的标题改为“关机”。新添3个按钮控件,其ID和标题分别设置如下。按钮ID值Caption播放按钮IDCBUTTONPLAY播放停止按钮IDCBUTTONSTOP停止打开按钮IDCBUTTONOPEN打开(4)为对话框类添加3个成员
3、变量,并在构造函数中对它们进行初始化。3个成员变量分别用来表示当前状态为播放、暂停状态和设备ID,如下:变量类型变量名访问类型BOOLmbIsPlayingprotectedBOOLmbIsPauseprotectedMCIDEVICEIDmMCIDeviceIDprotected构造函数屮的初始化代码:CEx123Dlg::CEx123Dlg(CWnd*pParent/*二NULL*/):CDialog(CExl23Dlg::IDD,pParent)m_hlcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME
4、);m_bIsPause=FALSE;m_bIsPlaying=FALSE;m_MCIDeviceID=O;}(1)为CExl23Dlg对话框类添加3个成员函数:1)利用类向导添加WM_DESTROY消息的处理函数,代码如下:voidCExl23Dlg::OnDestroy(){CDialog::OnDestroy();〃退出程序前先停止声音播放,再关闭设备//这里忽略了错误处理mciSendCommand(m_MClDeviceID,MCI_STOP,MCl_WAIT,NULL);mciSendCommand(m_MCIDeviceI
5、D,MCI_CLOSE,MCI_WAIT,NULL);}2)添加一个处理MCI错误的函数。在ClassView页面中,右键单击CExl23Dlg类,选择AddMemberFunction;添加成员函数类型为viod,函数描述为:ShowMCIError(DWORDdwError);访问方式为:privateo函数代码内容为:voidCEx123Dlg::ShowMCIError(DWORDdwError){charszErrorBuf[MAXERRORLENGTH];MessageBeep(MB」CONEXCLAMATION);if(m
6、ciGetErrorString(dwError,(LPSTR)szErrorBuf,MAXERRORLENGTH))MessageBoxCszErrorBuf/'MCI错误n,MB_lCONEXCLAMATION);elseMessageBox(H未知错误J'V'MCI错误”,MB_ICONEXCLAMATION);13)添加MM_MCINOTIFY消息的消息映射和处理函数。由于类向导不支持该消息,必须手工进行添加,添加时不耍忘记包括三项内容:函数原型、消息映射入口项和函数体。在exl23Dlg.h文件中添加消息函数原型的声明:cla
7、ssCExl23Dlg:publicCDialog{〃省略部分代码virtualBOOLOnlnitDialogO;afx_msgvoidOnSysCommand(UINTnID,LPARAM1Param);afx_msgvoidOnPaint();afx_msgHCURSOROnQueryDragIcon();afx_msgvoidOnDestroyO;afx_msgLRESULTOnMciNotify(WPARAMwParam,LPARAM1Param);afx_msgvoidOnButtonOpen();afx_msgvoidOn
8、ButtonPlayO;afx_msgvoidOnButtonStop();〃}}AFX_MSGDECLARE_MESSAGE_MAP()private:voidShowMClError(DWORDdwEr
此文档下载收益归作者所有