- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
mp3 仿真程序设计 可视化程序课程设计.doc
课程设计报告文档
题目: MP3仿真程序设计
一.引言
1.编写目的:
2.定义:无
3.参考资料:VisualC++面向对象与可视化程序设计 作者:黄维通(第二版)
二.任务的描述
1.目标:通过课程设计使学生基本概念原理和技术将理论与实际相结合完成一个小型的设计与实现并在此基础上强化学生的实践意识提高其实际动手能力和创新能力CMp3PlayerApp::CMp3PlayerApp:构造函数
CMp3PlayerApp::GetMessageMap:消息循环函数
CMp3PlayerApp::InitInstance:初始化
(2)CMP3PlayerDlg:对话框类,建立对话框实例,接受各种消息并应用消息处理函数进行处理对应消息
CMp3PlayerDlg::OnExit 退出
CMp3PlayerDlg::OnInitDialog初始化对话框实例
CMp3PlayerDlg::OnOpen 打开
CMp3PlayerDlg::OnPaint 程序的尺寸设置
CMp3PlayerDlg::OnPause 暂停
CMp3PlayerDlg::OnPlay播放
CMp3PlayerDlg::OnStop停止
CStatic m_Status;静态控件变量
CButton m_Play;播放控件变量
CButton m_Pause;暂停变量
CString m_Path;路径变量
CButton m_Stop;停止播放变量
HWND m_sound_song;
BOOL Pause;
流程图
2.类的接口设计:
(1)CMP3PlayerApp类:
BOOL CMp3PlayerApp::InitInstance()
(2)CMP3PlayerDlg类:
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnExit();
afx_msg void OnStop();
afx_msg void OnPause();
afx_msg void OnPlay();
afx_msg void OnOpen();
3.类之间的关系:
四.编写代码
1.问题1
(1)问题描述:在编写打开按钮的函数时用到了CFileDialog mp3 创建通用对话框,前四个参数都没出错,但编写到第五个参数需要写过滤器时,在系统编译时提示第五参数无法转换格式,并且相同的代码在不同的项目中运行的不一样
(2)解决办法:利用网上资料所给的_T(X)形式书写过滤器代码时,编译有效。
2.问题2
(1)问题描述: m_sound_song 在定义这个变量时犹豫是把它定义成私有的,还是定义为公有的,抽搐很久。
(2)解决办法:首先想到m_sound_song变量是打开的音乐文件的句柄,把它作为公有也可以,对程序没有什么影响,但是,作为句柄如果是公有,那么对于别人来说可以改变这个句柄,考虑到程序的安全性,还是定义为私有,私有的话,只有类和类的对象可以访问,变得相对安全。
五.程序运行
1.程序运行的过程:
程序刚打开
程序加载音乐文件并开始播放,播放状态变为正在播放
点击暂停按钮后,播放状态发生变化,变为暂停,暂停按钮自动变为恢复
点击恢复后,音乐继续播放,按钮再一次变为暂停,播放状态变为播放
2.类的构造顺序:
先用CMP3PlayerApp类创建程序实例,再用CMP3PlayerDlg类创建对话框实例并将句柄交给程序,CMP3PlayerDlg类中加载各个空间的对象实例,并用
BEGIN_MESSAGE_MAP(CMp3PlayerDlg, CDialog)函数进行消息循环等待用户执行命令处理。
3.错误描述及其解决办法
(1)问题1:
问题描述: 编译过程中播放的状态总是不能正确显示,播放时能正常显示,当按暂停后,显示的内容就出了问题,不显示“暂停”恢复时:状态显示的却是“暂停”
解决办法: 查找OnPause()函数中发现,
m_Pause.SetWindowText(暂停);
MCIWndResume(m_sound_song);
Pause = FALSE;
m_Status.SetWindowText(_T(播放状态:播放));
其中m_Pause.SetWindowText(暂停)函数的内容写错,暂停后,状态问暂停,恢复后,状态为播放。
(2)问题2
问题描述: 打开音乐函数中有if(mp3.DoModal() == IDOK),刚开始时用的是mp3.DoModal()语句,本来没有太大的影响,但是打开后的
文档评论(0)