还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
河南科技大学课程设计说明书课程名称面向对象程序课程设计题目DVD仿真程序设计院系电子信息工程学院课程设计任务书课程设计题目DVD仿真程序设计姓名学号专业班级计科101组别组长同组成员指导教师课程设计目的通过本课程设计,使学生巩固面向对象程序设计的基本概念、原理和技术,学会使用C++语言进行简单程序的开发,将理论与实际相结合,完成一个小型程序的设计与实现,并在此基础上强化学生的实践意识,提高其实际动手能力和创新能力课程设计环境硬件装有Windows操作系统的计算机软件VisualC++
6.0课程设计任务和要求任务要求1.根据实际DVD的运行状况进行需求分析;2.抽象DVD运行算法;3.设计DVD运行程序及人机交互界面;4.模块功能满足要求、界面友好、具有一定的健壮性;5.撰写出符合要求的课程设计报告参考文献1.郑秋生、吴庆涛,《C/C++程序设计》,北京电子工业出版社2.谭浩强 《C++程序设计》,北京清华大学出版社时间进度安排序号起止日期工作内容
13.4-
3.5学生熟悉题目背景,查阅资料
23.6-
3.13学生进行功能模块设计、编码、测试
33.14-
3.15程序验收
43.16根据设计内容形成课程设计文档,撰写课程设计报告
53.17上交课程设计报告任课教师刘中华、张晓玲、李艳霞时间
2013.
3.3课程设计报告文档题目DVD仿真程序设计一.引言1.编写目的实现模拟DVD的功能需要包含
①数据显示区域(相当于显示类的产品),
②DVD模拟区域,实现模拟DVD的快进,快退,播放,暂停,菜单,上一首,下一首,音量的加,音量减的功能此外模拟了一个接口按钮,用于DVD向显示设备的数据输入还模拟了一个DVD的电源开关至此,实现此次DVD仿真模拟的设计目的
2.定义MFCMicrosoftFoundationClasses是一个微软公司http://baike.baidu.com/view/
39784.htm\t_blank提供的类库(classlibraries),以C++类的形式封装了Windows的API,并且包含一个应用程序http://baike.baidu.com/view/
330120.htm\t_blank框架,以减少应用程序开发http://baike.baidu.com/view/
1753085.htm\t_blank人员的工作量其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件http://baike.baidu.com/view/
185331.htm\t_blank和组件的封装类3.参考资料
[1]郑秋生.c/c++程序设计教程—面向对象分册.北京电子工业出版社,2012
[2]邱勇、肖春宝、白秀玲.《可视化程序设计》.北京清华大学出版社
[3]黄维通.visualc++面向对象与可视化程序设计.北京清华大学出版社二.任务的描述1.目标通过本课程设计,使学生巩固面向对象程序设计的基本概念、原理和技术,学会使用C++语言进行简单程序的开发,将理论与实际相结合,完成一个小型程序的设计与实现,并在此基础上强化学生的实践意识,提高其实际动手能力和创新能力
2.功能描述DVD的仿真模拟分为
①数据显示区域(相当于显示类的产品),
②DVD模拟区域,模拟DVD的快进,快退,播放,暂停,菜单,上一首,下一首,音量的加,音量减的功能此外模拟了一个接口按钮,用于DVD向显示设备的数据输入模拟了一个DVD的电源开关
③光碟数据的存储区域模拟点击按钮可以打开数据中心仓库,区域1可以点击此按钮打开光碟数据存储仓库,打开后的界面如下图所示区域2点击鼠标的右键可以打开右键菜单{
1.添加文件到列表
2.删除列表中文件}区域3实现DVD的模拟功能点击快进按钮实现快进功能;点击快退按钮实现快退功能;点击播放按钮实现播放功能;点击暂停按钮实现暂停功能;点击+按钮实现音量的加功能;点击--按钮实现音量减的功能;点击菜单按钮可以实现DVD光碟返回到菜单的功能;模拟了一个接口按钮,相当于DVD像显示接口插入的一条数据线,用于DVD向显示设备的数据输入;电源开关实现DVD机关闭的功能区域1可以点击此按钮打开光碟数据然后直接打开播放器小窗口播放,播放器的小窗口如下图鼠标右键点击此按钮的可以弹出右键菜单,右键菜单响应的事件功能有,{播放和查看文件的大小属性}区域2点击鼠标的右键可以打开右键菜单{
1.添加文件到列表
2.删除列表中文件}区域3显示当前播放文件的路径区域4点击可以打开文件选择对话框,实现让用户选择非DVD格式的文件这是在DVD基础上对于播放的扩展功能的增强区域5点击此按钮可以查看播放器支持的文件格式区域1可以点击对应的菜单实现对应的音影的播放功能区域2点击全屏按钮实现全屏播放上图播放DVD时候的小窗口播放界面上面为DVD文件的播放菜单,DVD文件是用转换工具转换的DVD整个光碟,由于转换的速度较慢,且转换后文件较大,一个大约6G,一个大约2G,转换时间周期较长,用晚上转换的转换后的DVD文件没法加入电子档总计8G在此说明一下3.性能描述
(1)数据精确度播放的时间在毫秒级
(2)时间特性响应时间,更新处理时间,运行时间等都较短4.运行环境硬件Windows7操作系统平台软件VisualC++
6.05.条件与限制条件是由于播放DVD的文件解码较苛刻,系统必须安装有DVD格式的解码器三.任务设计1.类的划分
(1)类1classCAaDlg:publicCDialog{public:CAaDlgCWnd*pParent=NULL;//standardconstructorenum{IDD=IDD_AA_DIALOG};CListBoxm_list;CButtonm_Open;CButtonm_Play;CButtonm_Up;CButtonm_Stop;CButtonm_Down1;intt;boolt1;CButtonm_Slow;CButtonm_VolSmall;CButtonm_VolBig;CButtonm_Menu;CButtonm_JieKou;CButtonm_Forhead;CButtonm_Close;CWMPPlayer4m_WMPlayer;CWMPControlsm_Control;CWMPDVDm_wmpDVD;CWMPSettingsm_set;CWMPPlaylistm_playlist;CWMPMediam_media;CWMPPlayer4m_WMp;CStringstr1;Dlg1dlg1;intk;public:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;protected:HICONm_hIcon;virtualBOOLOnInitDialog;afx_msgvoidOnSysCommandUINTnIDLPARAMlParam;afx_msgvoidOnPaint;afx_msgHCURSOROnQueryDragIcon;afx_msgvoidOnBUTTOClose;afx_msgvoidOnBUTTONForhead;afx_msgvoidOnBUTTOSlow;afx_msgvoidOnBUTTONVolBig;afx_msgvoidOnBUTTONVolSmall;afx_msgvoidOnBUTTONJIeKou;afx_msgvoidOnBUTTONDown;afx_msgvoidOnBUTTOPlay;afx_msgvoidOnBUTTONStop;afx_msgvoidOnButtonup;afx_msgvoidOnBUTTONMenu;afx_msgvoidOnOpen;afx_msgvoidOnDblclkList1;DECLARE_MESSAGE_MAP};CAaDlg类实现了模拟DVD的主界面的功能实现成员函数OnBUTTOClose实现DVD电源的关闭功能,成员函数OnBUTTOPlay实现播放功能;成员函数OnBUTTONStop实现音视频的暂停功能;成员函数OnBUTTONForhead实现快进功能;成员函数OnBUTTOSlow实现快退功能;成员函数OnBUTTONVolBig实现音量增加功能;成员函数OnBUTTONVolSmall实现音量减小功能等;
(2)类2classDlg1:publicCDialog{public:Dlg1CWnd*pParent=NULL;enum{IDD=IDD_DIALOG1};CListBoxm_list;CButtonm_btn5;CButtonm_btn4;CButtonm_btn3;CButtonm_btn2;CButtonm_btn1;SmallPlayersmallplayer;intp;CStringm_edit;public:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;protected:afx_msgvoidOnButton1;virtualBOOLOnInitDialog;afx_msgvoidOnButton3;afx_msgvoidOnButton2;afx_msgvoidOnButton5;afx_msgvoidOnButton4;afx_msgvoidOnSelchangeList1;afx_msgvoidOnDblclkList1;DECLARE_MESSAGE_MAP};类Dlg1实现把DVD光碟存放区域的显示,光碟在此区域存放
(3)类3classSmallPlayer:publicCDialog{public:SmallPlayerCWnd*pParent=NULL;//standardconstructorenum{IDD=IDD_DIALOG2};CButtonm_btn1;CButtonm_btn2;CWMPPlayer4m_ocx1;CWMPControlsm_control;CWMPDVDm_dvd;CWMPPlaylistm_playlist;CWMPSettingsm_set;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportprotected:afx_msgvoidOnButton1;afx_msgvoidOnButton2;virtualBOOLOnInitDialog;DECLARE_MESSAGE_MAP};类SmallPlayer实现把DVD光碟的小窗口播放2.类的接口设计
(1)类1public:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;
(2)类2public:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;protected:afx_msgvoidOnButton1;virtualBOOLOnInitDialog;afx_msgvoidOnButton3;afx_msgvoidOnButton2;afx_msgvoidOnButton5;afx_msgvoidOnButton4;afx_msgvoidOnSelchangeList1;afx_msgvoidOnDblclkList1;DECLARE_MESSAGE_MAP
(3)类3protected:afx_msgvoidOnButton1;afx_msgvoidOnButton2;virtualBOOLOnInitDialog;DECLARE_MESSAGE_MAP说明protected是windows机制的消息函数Windows消息机制Windows系统是一个消息驱动的OS,一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口例如当菜单转中之后会有WM_COMMANDhttp://baike.baidu.com/view/
1800767.htm消息发送,WPARAM的高字中(HIWORDwParam)是命令的ID号,对菜单来讲就是菜单ID当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据一个消息必须由一个窗口接收在窗口的过程(WNDPROC)中可以对消息进行分析,对自己感兴趣的消息进行处理例如你希望对菜单选择进行处理那么你可以定义对WM_COMMAND进行处理的代码,如果希望在窗口中进行图形输出就必须对WM_PAINT进行处理也相当于与用户交互的接口
3.类之间的关系类CAboutDlg、类SmallPlayer、类Dlg
1、类CAaDlg,都是继承自CDialog类类CAaDlg和类Dlg1是包含关系,类Dlg1和类SmallPlayer也是包含关系四.编写代码1.问题1
(1)问题描述点击按钮新的窗体无法弹出
(2)解决办法新的窗体类没有加到父窗体的头文件中且关于模态对话框与非模态对话框的显示机制不同模态可以使用Domal函数实现非模态对话框的建立需要dlg
1.CreateIDD_DIALOG1this;即类创建显示的窗体UI;dlg
1.ShowWindowSW_SHOW;然后显示窗体这样才完成一个非模态对话框的建立问题得以解决2.问题2
(1)问题描述播放文件时,列表中选中的文件播放的是列表中其他的文件
(2)解决办法使用m_list.SetCurSel设置列表索引号,这样索引顺序正确,问题得到解决五.运行结果与分析1.程序运行的过程程序先执行主对话框,当用户点击代开DVD数据按钮程序响应windows消息映射,通过windows机制在内存中建立新的类dlg1,此类是主窗体中包含的成员函数2.类的构造顺序先构造类CAaDlg,然后构造类Dlg1.3.错误描述及其解决办法
(1)问题1问题描述点击音量增加按钮音量无法增加,代码已经添加解决办法没有把wmpcontrol类的头文件包含,加入头文件即可
(2)问题2问题描述点击list区域鼠标点击的位置和右键菜单出现的位置有距离差;解决办法在ClientToScreenpt这一句不需要把坐标转换成客户区域坐标………………………………………
6、感想认识这次课程设计对于面向对象的思想有深刻的体会这次课程设计无论是我需找DVD格式文件的创建刻录,等等功能,自己没有接触过刚开始一头雾水自己的想法不好实现通过网络的搜索需找,得到解决的途径,这样不仅培养了遇到问题的思考方法,而且更培养了我编程中分析问题,解决问题的方法途径等等更使得我对于对面向对象的封装,继承以及多态性等特点以及优点理解,也让自己对微软MFC编程有了一定的认识,通过封装类我们把想要现的功能封装起来,通过继承我们可以对已有类进行扩充,通过多态性我可以让不同对象面对同一消息有各自的响应这次设计使我进步很大,收获颇丰七.程序代码文件Aadlg.h#includewmpplayer
4.h#includewmpcontrols.h#includewmpdvd.h#includewmpplayer
4.h#includewmpmedia.h#includewmpplaylist.h#includewmpsettings.h#includeDlg
1.h//}}AFX_INCLUDES#if!definedAFX_AADLG_H__C8019617_E9EB_4714_B667_009BB531DE6E__INCLUDED_#defineAFX_AADLG_H__C8019617_E9EB_4714_B667_009BB531DE6E__INCLUDED_#if_MSC_VER1000#pragmaonce#endif//_MSC_VER1000///////////////////////////////////////////////////////////////////////////////CAaDlgdialogclassCAaDlg:publicCDialog{//Constructionpublic:CAaDlgCWnd*pParent=NULL;//standardconstructor//DialogData//{{AFX_DATACAaDlgenum{IDD=IDD_AA_DIALOG};CListBoxm_list;CButtonm_Open;CButtonm_Play;CButtonm_Up;CButtonm_Stop;CButtonm_Down1;intt;boolt1;CButtonm_Slow;CButtonm_VolSmall;CButtonm_VolBig;CButtonm_Menu;CButtonm_JieKou;CButtonm_Forhead;CButtonm_Close;CWMPPlayer4m_WMPlayer;CWMPControlsm_Control;CWMPDVDm_wmpDVD;CWMPSettingsm_set;CWMPPlaylistm_playlist;CWMPMediam_media;CWMPPlayer4m_WMp;CStringstr1;Dlg1dlg1;intk;//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUALCAaDlgpublic:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;//}}AFX_VIRTUAL//Implementationprotected:HICONm_hIcon;//Generatedmessagemapfunctions//{{AFX_MSGCAaDlgvirtualBOOLOnInitDialog;afx_msgvoidOnSysCommandUINTnIDLPARAMlParam;afx_msgvoidOnPaint;afx_msgHCURSOROnQueryDragIcon;afx_msgvoidOnBUTTOClose;afx_msgvoidOnBUTTONForhead;afx_msgvoidOnBUTTOSlow;afx_msgvoidOnBUTTONVolBig;afx_msgvoidOnBUTTONVolSmall;afx_msgvoidOnBUTTONJIeKou;afx_msgvoidOnBUTTONDown;afx_msgvoidOnBUTTOPlay;afx_msgvoidOnBUTTONStop;afx_msgvoidOnButtonup;afx_msgvoidOnBUTTONMenu;afx_msgvoidOnOpen;afx_msgvoidOnDblclkList1;//}}AFX_MSGDECLARE_MESSAGE_MAP};文件aadlg.cpp#includestdafx.h#includeaa.h#includeaaDlg.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CAboutDlgdialogusedforAppAboutclassCAboutDlg:publicCDialog{public:CAboutDlg;//DialogData//{{AFX_DATACAboutDlgenum{IDD=IDD_ABOUTBOX};//}}AFX_DATA//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUALCAboutDlgprotected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected://{{AFX_MSGCAboutDlg//}}AFX_MSGDECLARE_MESSAGE_MAP};CAboutDlg::CAboutDlg:CDialogCAboutDlg::IDD{//{{AFX_DATA_INITCAboutDlg//}}AFX_DATA_INIT}voidCAboutDlg::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPCAboutDlg//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPCAboutDlgCDialog//{{AFX_MSG_MAPCAboutDlg//Nomessagehandlers//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////CAaDlgdialogCAaDlg::CAaDlgCWnd*pParent/*=NULL*/:CDialogCAaDlg::IDDpParent{//{{AFX_DATA_INITCAaDlg//}}AFX_DATA_INIT//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32t=1;t1=true;m_hIcon=AfxGetApp-LoadIconIDR_MAINFRAME;}voidCAaDlg::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPCAaDlgDDX_ControlpDXIDC_LIST1m_list;DDX_ControlpDXIDC_BUTTON2m_Open;DDX_ControlpDXIDC_BUTTOPlaym_Play;DDX_ControlpDXIDC_BUTTONUPm_Up;DDX_ControlpDXIDC_BUTTONStopm_Stop;DDX_ControlpDXIDC_BUTTONDownm_Down1;DDX_ControlpDXIDC_BUTTOSlowm_Slow;DDX_ControlpDXIDC_BUTTONVolSmallm_VolSmall;DDX_ControlpDXIDC_BUTTONVolBigm_VolBig;DDX_ControlpDXIDC_BUTTONMenum_Menu;DDX_ControlpDXIDC_BUTTONJIeKoum_JieKou;DDX_ControlpDXIDC_BUTTONForheadm_Forhead;DDX_ControlpDXIDC_BUTTOClosem_Close;DDX_ControlpDXIDC_OCX1m_WMp;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPCAaDlgCDialog//{{AFX_MSG_MAPCAaDlgON_WM_SYSCOMMANDON_WM_PAINTON_WM_QUERYDRAGICONON_BN_CLICKEDIDC_BUTTOCloseOnBUTTOCloseON_BN_CLICKEDIDC_BUTTONForheadOnBUTTONForheadON_BN_CLICKEDIDC_BUTTOSlowOnBUTTOSlowON_BN_CLICKEDIDC_BUTTONVolBigOnBUTTONVolBigON_BN_CLICKEDIDC_BUTTONVolSmallOnBUTTONVolSmallON_BN_CLICKEDIDC_BUTTONJIeKouOnBUTTONJIeKouON_BN_CLICKEDIDC_BUTTONDownOnBUTTONDownON_BN_CLICKEDIDC_BUTTOPlayOnBUTTOPlayON_BN_CLICKEDIDC_BUTTONStopOnBUTTONStopON_BN_CLICKEDIDC_BUTTONUPOnButtonupON_BN_CLICKEDIDC_BUTTONMenuOnBUTTONMenuON_BN_CLICKEDIDC_BUTTON2OnOpenON_LBN_DBLCLKIDC_LIST1OnDblclkList1//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////CAaDlgmessagehandlersBOOLCAaDlg::OnInitDialog{HICONDVDIconBoxIcon;CDialog::OnInitDialog;k=0;DVDIcon=AfxGetApp-LoadIconIDI_ICON1;BoxIcon=AfxGetApp-LoadIconIDI_ICON2;SetIconDVDIconTRUE;m_Open.SetIconBoxIcon;dlg
1.CreateIDD_DIALOG1this;//AddAbout...menuitemtosystemmenu.//IDM_ABOUTBOXmustbeinthesystemcommandrange.ASSERTIDM_ABOUTBOX0xFFF0==IDM_ABOUTBOX;ASSERTIDM_ABOUTBOX0xF000;m_Control=m_WMp.GetControls;m_set=m_WMp.GetSettings;m_wmpDVD=m_WMp.GetDvd;m_WMp.SetUiModeNone;m_WMp.SetEnableContextMenuFALSE;//m_WMp.SetFullScreen;//a1=TRUE;//a2=TRUE;CMenu*pSysMenu=GetSystemMenuFALSE;ifpSysMenu!=NULL{CStringstrAboutMenu;strAboutMenu.LoadStringIDS_ABOUTBOX;if!strAboutMenu.IsEmpty{pSysMenu-AppendMenuMF_SEPARATOR;pSysMenu-AppendMenuMF_STRINGIDM_ABOUTBOXstrAboutMenu;}}//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplicationsmainwindowisnotadialogSetIconm_hIconTRUE;//SetbigiconSetIconm_hIconFALSE;//Setsmallicon//TODO:AddextrainitializationherereturnTRUE;//returnTRUEunlessyousetthefocustoacontrol}voidCAaDlg::OnSysCommandUINTnIDLPARAMlParam{ifnID0xFFF0==IDM_ABOUTBOX{CAboutDlgdlgAbout;dlgAbout.DoModal;}else{CDialog::OnSysCommandnIDlParam;}}//Ifyouaddaminimizebuttontoyourdialogyouwillneedthecodebelow//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel//thisisautomaticallydoneforyoubytheframework.voidCAaDlg::OnPaint{ifIsIconic{CPaintDCdcthis;//devicecontextforpaintingSendMessageWM_ICONERASEBKGNDWPARAMdc.GetSafeHdc0;//CentericoninclientrectangleintcxIcon=GetSystemMetricsSM_CXICON;intcyIcon=GetSystemMetricsSM_CYICON;CRectrect;GetClientRectrect;intx=rect.Width-cxIcon+1/2;inty=rect.Height-cyIcon+1/2;//Drawtheicondc.DrawIconxym_hIcon;}else{CDialog::OnPaint;}}//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags//theminimizedwindow.HCURSORCAaDlg::OnQueryDragIcon{returnHCURSORm_hIcon;}voidCAaDlg::OnBUTTOClose{//TODO:Addyourcontrolnotificationhandlercodehere//m_WMp.ift1{t1=false;GetDlgItemIDC_BUTTOClose-SetWindowText电源开;m_Control.stop;m_WMp.SetUrlNULL;}else{t1=TRUE;GetDlgItemIDC_BUTTOClose-SetWindowText电源关;m_Control.play;}}//charszFileFilter[]=//VOBFile*.vob|*.vob|//Mp3File*.mp3|*.mp3|//MPEGFile*.mpeg|*.mpeg|//MediaFile*.asf|*.asf|//VideoFile*.dat|*.dat|//MPGAFile*.mpga|*.mpga|//WaveFile*.wav|*.wav|//AVIFile*.avi|*.avi|//MovieFile*.mov|*.mov|//MidFile*.mid;*rmi|*.mid;*.rmi|//WmaFile*.wma|*.wma|//AllFile*.*|*.*||;//CFileDialogfileDialogTRUENULLNULLNULLszFileFilterthis;//iffileDialog.DoModal==IDOK//{//CStringfileName=fileDialog.GetPathName;//m_avPlayer.put_URLfileName;//}voidCAaDlg::OnBUTTONForhead{//TODO:Addyourcontrolnotificationhandlercodehere//ifa1//{m_Control.fastForward;//a1=false;//}//else}voidCAaDlg::OnBUTTOSlow{//TODO:Addyourcontrolnotificationhandlercodeherem_Control.fastReverse;/*m_Control.*/}voidCAaDlg::OnBUTTONVolBig{//TODO:Addyourcontrolnotificationhandlercodehereinti=m_set.GetVolume;i++;m_set.SetVolumei;}voidCAaDlg::OnBUTTONVolSmall{//TODO:Addyourcontrolnotificationhandlercodehereinti=m_set.GetVolume;i--;m_set.SetVolumei;}voidCAaDlg::OnBUTTONJIeKou{//TODO:Addyourcontrolnotificationhandlercodehereift{t=0;GetDlgItemIDC_BUTTONJIeKou-SetWindowText接口开;m_Control.stop;}else{t=1;GetDlgItemIDC_BUTTONJIeKou-SetWindowText接口关;m_Control.play;}}BOOLCAaDlg::PreTranslateMessageMSG*pMsg{//TODO:Addyourspecializedcodehereand/orcallthebaseclassCRectRt1;POINTpt;CMenucmenu;ifpMsg-message==WM_RBUTTONDOWN{::GetWindowRectGetDlgItemIDC_LIST1-GetSafeHwndRt1;::GetCursorPospt;ifPtInRectRt1pt{cmenu.LoadMenuIDR_MENU1;CMenu*pPopup=cmenu.GetSubMenu0;pPopup-TrackPopupMenuTPM_LEFTALIGN|TPM_RIGHTBUTTONpt.xpt.ythis;}}returnCDialog::PreTranslateMessagepMsg;}BOOLCAaDlg::OnCommandWPARAMwParamLPARAMlParam{//TODO:Addyourspecializedcodehereand/orcallthebaseclassUINTuMsg=LOWORDwParam;charszFileFilter[]=DVD光碟*.vob;*.ifo|*.vob;*.ifo|Mp3File*.mp3|*.mp3|MPEGFile*.mpeg|*.mpeg|MediaFile*.asf|*.asf|VideoFile*.dat|*.dat|MPGAFile*.mpga|*.mpga|WaveFile*.wav|*.wav|AVIFile*.avi|*.avi|MovieFile*.mov|*.mov|MidFile*.mid;*.rmi|*.mid;*.rmi|WmaFile*.wma|*.wma|AllFile*.*|*.*||;ifuMsg==ID_MENUITEM32771{CFileDialogdlgTRUENULLNULLOFN_HIDEREADONLYszFileFilter;ifdlg.DoModal==IDOK{CStringPathName=dlg.GetPathName;PathName.MakeUpper;intnIndex=m_list.GetCurSel;m_list.InsertStringnIndexPathName;m_WMp.SetUrlPathName;//MessageBoxPathName;}}ifuMsg==ID_MENUITEM32772{intnIndex=m_list.GetCurSel;intnState=this-m_list.GetSelnIndex;ifnState{m_list.DeleteStringnIndex;}elsereturn0;}returnCDialog::OnCommandwParamlParam;}voidCAaDlg::OnBUTTONDown{//TODO:Addyourcontrolnotificationhandlercodeherem_Control.next;}voidCAaDlg::OnBUTTOPlay{//TODO:Addyourcontrolnotificationhandlercodeherem_Control.play;}voidCAaDlg::OnBUTTONStop{//TODO:Addyourcontrolnotificationhandlercodeherem_Control.pause;}voidCAaDlg::OnButtonup{//TODO:Addyourcontrolnotificationhandlercodeherem_Control.previous;}voidCAaDlg::OnBUTTONMenu{//TODO:Addyourcontrolnotificationhandlercodeherem_wmpDVD.titleMenu;}voidCAaDlg::OnOpen{//TODO:Addyourcontrolnotificationhandlercodeheredlg
1.ShowWindowSW_SHOW;}voidCAaDlg::OnDblclkList1{//TODO:AddyourcontrolnotificationhandlercodehereCStringtr;intselect;//inta=m_CList.GetCurSel;select=m_list.GetCurSel;//total=m_list.GetCount;m_list.GetTextselecttr;m_WMp.SetUrltr;m_Control.play;//m_WMp.ShowWindowSW_SHOW;//SetDlgItemTextIDC_EDIT1tr;}文件Dlg
1.h////{{AFX_INCLUDES#includeSmallPlayer.h//}}AFX_INCLUDES#if!definedAFX_DLG1_H__15EEADF6_D4B1_469E_B24C_30872496AF0D__INCLUDED_#defineAFX_DLG1_H__15EEADF6_D4B1_469E_B24C_30872496AF0D__INCLUDED_#if_MSC_VER1000#pragmaonce#endif//_MSC_VER1000//Dlg
1.h:headerfile/////////////////////////////////////////////////////////////////////////////////Dlg1dialogclassDlg1:publicCDialog{//Constructionpublic:Dlg1CWnd*pParent=NULL;//standardconstructor//DialogData//{{AFX_DATADlg1enum{IDD=IDD_DIALOG1};CListBoxm_list;CButtonm_btn5;CButtonm_btn4;CButtonm_btn3;CButtonm_btn2;CButtonm_btn1;SmallPlayersmallplayer;intp;CStringm_edit;//}}AFX_DATA//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUALDlg1public:virtualBOOLPreTranslateMessageMSG*pMsg;protected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupportvirtualBOOLOnCommandWPARAMwParamLPARAMlParam;//}}AFX_VIRTUAL//Implementationprotected://Generatedmessagemapfunctions//{{AFX_MSGDlg1afx_msgvoidOnButton1;virtualBOOLOnInitDialog;afx_msgvoidOnButton3;afx_msgvoidOnButton2;afx_msgvoidOnButton5;afx_msgvoidOnButton4;afx_msgvoidOnSelchangeList1;afx_msgvoidOnDblclkList1;//}}AFX_MSGDECLARE_MESSAGE_MAP};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!definedAFX_DLG1_H__15EEADF6_D4B1_469E_B24C_30872496AF0D__INCLUDED_文件dlg
1.cpp//Dlg
1.cpp:implementationfile//#includestdafx.h#includeaa.h#includeDlg
1.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////Dlg1dialogDlg1::Dlg1CWnd*pParent/*=NULL*/:CDialogDlg1::IDDpParent{//{{AFX_DATA_INITDlg1m_edit=_T;//}}AFX_DATA_INIT}voidDlg1::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPDlg1DDX_ControlpDXIDC_LIST1m_list;DDX_ControlpDXIDC_BUTTON5m_btn5;DDX_ControlpDXIDC_BUTTON4m_btn4;DDX_ControlpDXIDC_BUTTON3m_btn3;DDX_ControlpDXIDC_BUTTON2m_btn2;DDX_ControlpDXIDC_BUTTON1m_btn1;DDX_TextpDXIDC_EDIT1m_edit;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPDlg1CDialog//{{AFX_MSG_MAPDlg1ON_BN_CLICKEDIDC_BUTTON1OnButton1ON_BN_CLICKEDIDC_BUTTON3OnButton3ON_BN_CLICKEDIDC_BUTTON2OnButton2ON_BN_CLICKEDIDC_BUTTON5OnButton5ON_BN_CLICKEDIDC_BUTTON4OnButton4ON_LBN_SELCHANGEIDC_LIST1OnSelchangeList1ON_LBN_DBLCLKIDC_LIST1OnDblclkList1//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////Dlg1messagehandlers//boolDlg1::OnInitDialog//{//CDialog::OnInitDialog;////returntrue;//}BOOLDlg1::OnInitDialog{HICONDVDIconBoxIcon;CDialog::OnInitDialog;DVDIcon=AfxGetApp-LoadIconIDI_ICON1;BoxIcon=AfxGetApp-LoadIconIDI_ICON2;SetIconDVDIconTRUE;m_btn
1.SetIconBoxIcon;m_btn
2.SetIconBoxIcon;m_btn
3.SetIconBoxIcon;smallplayer.CreateIDD_DIALOG2this;p=0;//TODO:AddextrainitializationherereturnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidDlg1::OnButton1{//TODO:Addyourcontrolnotificationhandlercodehere//Dlg
1.EndDialogIDCANCEL////CStringPathName=dlg.GetPathName;smallplayer.ShowWindowSW_SHOW;//smallplayer.m_ocx
1.SetUrlCAaApp*AfxGetApp-str1;//MessageBoxCAaApp*AfxGetApp-str1;//smallplayer.m_ocx
1.GetControls.play;}voidDlg1::OnButton3{//TODO:AddyourcontrolnotificationhandlercodehereMessageBox光碟夹里无光碟;}voidDlg1::OnButton2{//TODO:Addyourcontrolnotificationhandlercodeheresmallplayer.ShowWindowSW_SHOW;smallplayer.m_ocx
1.SetUrlCAaApp*AfxGetApp-str2;//smallplayer.m_ocx
1.GetControls.play;}voidDlg1::OnButton5{//TODO:AddyourcontrolnotificationhandlercodehereCStringstr3所支持的非格式mp3wma,Avi,MP4mpegasfdatmpgawavmovmidrmi;MessageBoxstr3支持格式MB_OK;}BOOLDlg1::PreTranslateMessageMSG*pMsg{//TODO:Addyourspecializedcodehereand/orcallthebaseclassCRectr1r2r3r4r5;CRectRt1;CMenucmenu1;POINTpt;CMenuc_menu;::GetWindowRectGetDlgItemIDC_BUTTON1-GetSafeHwndr1;//得到button所在的rect::GetWindowRectGetDlgItemIDC_BUTTON2-GetSafeHwndr2;::GetWindowRectGetDlgItemIDC_BUTTON3-GetSafeHwndr3;::GetWindowRectGetDlgItemIDC_BUTTON4-GetSafeHwndr4;::GetWindowRectGetDlgItemIDC_EDIT1-GetSafeHwndr5;::GetCursorPospt;//得到鼠标动作的位置ifpMsg-message==WM_RBUTTONDOWN{::GetWindowRectGetDlgItemIDC_LIST1-GetSafeHwndRt1;::GetCursorPospt;ifPtInRectRt1pt{cmenu
1.LoadMenuIDR_MENU1;CMenu*pPopup=cmenu
1.GetSubMenu0;pPopup-TrackPopupMenuTPM_LEFTALIGN|TPM_RIGHTBUTTONpt.xpt.ythis;}}////{//pMsg-message==WM_LBUTTONDOWN;//ifPtInRectr1pt{ifpMsg-message==WM_LBUTTONUP{ifPtInRectr5pt{smallplayer.m_ocx
1.SetUrlCAaApp*AfxGetApp-str1;smallplayer.ShowWindowSW_SHOW;}}}//TODO:在此添加专用代码和/或调用基类ifpMsg-message==WM_RBUTTONDOWN{ifPtInRectr1pt||PtInRectr2pt||PtInRectr3pt{c_menu.LoadMenuIDR_MENU2;CMenu*pPopup=c_menu.GetSubMenu0;//ClientToScreenpt;//因为point的位置是从屏幕的左上角为起点开始计算的,要想让菜单在正确的位置显示就要使用这个ClientToScreen函数将屏幕菜单转化成为正确的view坐标pPopup-TrackPopupMenuTPM_LEFTALIGN|TPM_RIGHTBUTTONpt.xpt.ythis;//不想在框架类显示就把GetParent改为this//trackpopupmenu是用来显示右击菜单的//AfxMessageBox_T右键单击}ifPtInRectr4pt{c_menu.LoadMenuIDR_MENU3;CMenu*pPopup=c_menu.GetSubMenu0;//ClientToScreenpt;//因为point的位置是从屏幕的左上角为起点开始计算的,要想让菜单在正确的位置显示就要使用这个ClientToScreen函数将屏幕菜单转化成为正确的view坐标pPopup-TrackPopupMenuTPM_LEFTALIGN|TPM_RIGHTBUTTONpt.xpt.ythis;//不想在框架类显示就把GetParent改为this//trackpopupmenu是用来显示右击菜单的//AfxMessageBox_T右键单击}}returnCDialog::PreTranslateMessagepMsg;}BOOLDlg1::OnCommandWPARAMwParamLPARAMlParam{//TODO:Addyourspecializedcodehereand/orcallthebaseclassUINTuMsg=LOWORDwParam;CRectr1r2;POINTpt;charszFileFilter[]=Mp3File*.mp3|*.mp3|MPEGFile*.mpeg|*.mpeg|MediaFile*.asf|*.asf|VideoFile*.dat|*.dat|MPGAFile*.mpga|*.mpga|WaveFile*.wav|*.wav|AVIFile*.avi|*.avi|MovieFile*.mov|*.mov|MidFile*.mid;*.rmi|*.mid;*.rmi|WmaFile*.wma|*.wma|AllFile*.*|*.*||;::GetWindowRectGetDlgItemIDC_BUTTON1-GetSafeHwndr1;//得到button所在的rect::GetWindowRectGetDlgItemIDC_BUTTON2-GetSafeHwndr2;::GetCursorPospt;//得到鼠标动作的位置ifuMsg==ID_MENUITEM32771{CFileDialogdlgTRUENULLNULLOFN_HIDEREADONLYszFileFilter;ifdlg.DoModal==IDOK{CStringPathName=dlg.GetPathName;PathName.MakeUpper;intnIndex=m_list.GetCurSel;m_list.InsertStringnIndexPathName;smallplayer.m_ocx
1.SetUrlPathName;//MessageBoxPathName;}}ifuMsg==ID_MENUITEM32772{intnIndex=m_list.GetCurSel;intnState=this-m_list.GetSelnIndex;ifnState{m_list.DeleteStringnIndex;}elsereturn0;}ifuMsg==ID_MENUITEM32774{ifPtInRectr1pt{smallplayer.m_ocx
1.SetUrlCAaApp*AfxGetApp-str1;smallplayer.ShowWindowSW_SHOW;}ifPtInRectr2pt{smallplayer.m_ocx
1.SetUrlCAaApp*AfxGetApp-str2;smallplayer.ShowWindowSW_SHOW;}}ifuMsg==ID_MENUITEM32775{ifPtInRectr1pt{MessageBoxCAaApp*AfxGetApp-str1;}ifPtInRectr2pt{MessageBoxCAaApp*AfxGetApp-str2;}//itoauMsg-32770buffer10;//MessageBoxCString我点击啦菜单重命名;}ifuMsg==ID_MENUITEM32776{CFileDialogdlgTRUENULLNULLOFN_HIDEREADONLYszFileFilter;ifdlg.DoModal==IDOK{CStringfileName=dlg.GetPathName;//创建一个媒体//SetDlgItemTextIDC_EDIT1fileName;m_list.InsertStringpfileName;p++;//m_list.EnsureVisible0FALSE;}}returnCDialog::OnCommandwParamlParam;}voidDlg1::OnButton4{charszFileFilter[]=Mp3File*.mp3|*.mp3|MPEGFile*.mpeg|*.mpeg|MediaFile*.asf|*.asf|VideoFile*.dat|*.dat|MPGAFile*.mpga|*.mpga|WaveFile*.wav|*.wav|AVIFile*.avi|*.avi|MovieFile*.mov|*.mov|MidFile*.mid;*.rmi|*.mid;*.rmi|WmaFile*.wma|*.wma|AllFile*.*|*.*||;//TODO:AddyourcontrolnotificationhandlercodehereCFileDialogdlgTRUENULLNULLOFN_HIDEREADONLYszFileFilter;ifdlg.DoModal==IDOK{CStringfileName=dlg.GetPathName;//创建一个媒体//SetDlgItemTextIDC_EDIT1fileName;m_list.InsertStringpfileName;p++;//MessageBoxCStringp;//m_list.EnsureVisible0FALSE;}}//voidDlg1::OnClickList1NMHDR*pNMHDRLRESULT*pResult//{////TODO:Addyourcontrolnotificationhandlercodehere//CStringtr;//intselecttotalom;//UpdateDataFALSE;//select=m_list.GetSelectedCount;//total=m_list.GetItemCount;//tr=m_list.GetItemTextselect0;//tr.MakeUpper;//ifselect1return;//foro=total-1;o=0;o--//{//m=m_list.GetItemStateoLVIS_SELECTED;//ifm!=0//{//smallplayer.m_ocx
1.SetUrltr;//smallplayer.ShowWindowSW_SHOW;//SetDlgItemTextIDC_EDIT1tr;//}//}//smallplayer.m_ocx
1.GetControls.play;//UpdateDatatrue;//*pResult=0;//}voidDlg1::OnSelchangeList1{//TODO:Addyourcontrolnotificationhandlercodehere}voidDlg1::OnDblclkList1{//TODO:AddyourcontrolnotificationhandlercodehereCStringtr;intselect;//inta=m_CList.GetCurSel;select=m_list.GetCurSel;//total=m_list.GetCount;m_list.GetTextselecttr;smallplayer.m_ocx
1.SetUrltr;smallplayer.ShowWindowSW_SHOW;SetDlgItemTextIDC_EDIT1tr;}文件SmallPlayer.h//{{AFX_INCLUDES#includewmpplayer
4.h#includewmpcontrols.h#includewmpdvd.h#includewmpplaylist.h#includewmpsettings.h//}}AFX_INCLUDES#if!definedAFX_SMALLPLAYER_H__2760CA4A_95ED_4454_9F75_966EDD44E946__INCLUDED_#defineAFX_SMALLPLAYER_H__2760CA4A_95ED_4454_9F75_966EDD44E946__INCLUDED_#if_MSC_VER1000#pragmaonce#endif//_MSC_VER1000//SmallPlayer.h:headerfile/////////////////////////////////////////////////////////////////////////////////SmallPlayerdialogclassSmallPlayer:publicCDialog{//Constructionpublic:SmallPlayerCWnd*pParent=NULL;//standardconstructor//DialogData//{{AFX_DATASmallPlayerenum{IDD=IDD_DIALOG2};CButtonm_btn1;CButtonm_btn2;CWMPPlayer4m_ocx1;CWMPControlsm_control;CWMPDVDm_dvd;CWMPPlaylistm_playlist;CWMPSettingsm_set;//}}AFX_DATA//Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUALSmallPlayerprotected:virtualvoidDoDataExchangeCDataExchange*pDX;//DDX/DDVsupport//}}AFX_VIRTUAL//Implementationprotected://Generatedmessagemapfunctions//{{AFX_MSGSmallPlayerafx_msgvoidOnButton1;afx_msgvoidOnButton2;virtualBOOLOnInitDialog;//}}AFX_MSGDECLARE_MESSAGE_MAP};//{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!definedAFX_SMALLPLAYER_H__2760CA4A_95ED_4454_9F75_966EDD44E946__INCLUDED_文件SmallPlayer.cpp//SmallPlayer.cpp:implementationfile//#includestdafx.h#includeaa.h#includeSmallPlayer.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////SmallPlayerdialogSmallPlayer::SmallPlayerCWnd*pParent/*=NULL*/:CDialogSmallPlayer::IDDpParent{//{{AFX_DATA_INITSmallPlayer//NOTE:theClassWizardwilladdmemberinitializationhere//}}AFX_DATA_INIT}voidSmallPlayer::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPSmallPlayerDDX_ControlpDXIDC_BUTTON1m_btn1;DDX_ControlpDXIDC_BUTTON2m_btn2;DDX_ControlpDXIDC_OCX1m_ocx1;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPSmallPlayerCDialog//{{AFX_MSG_MAPSmallPlayerON_BN_CLICKEDIDC_BUTTON1OnButton1ON_BN_CLICKEDIDC_BUTTON2OnButton2//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////SmallPlayermessagehandlersBOOLSmallPlayer::OnInitDialog{CDialog::OnInitDialog;m_control=m_ocx
1.GetControls;m_dvd=m_ocx
1.GetDvd;m_set=m_ocx
1.GetSettings;m_ocx
1.SetEnableContextMenuFALSE;//m_ocx
1.SetUiModeNone;//TODO:AddextrainitializationherereturnTRUE;//returnTRUEunlessyousetthefocustoacontrol//EXCEPTION:OCXPropertyPagesshouldreturnFALSE}voidSmallPlayer::OnButton1{//TODO:AddyourcontrolnotificationhandlercodehereShowWindowSW_SHOW;}voidSmallPlayer::OnButton2{//TODO:Addyourcontrolnotificationhandlercodeherem_ocx
1.SetFullScreenTRUE;}课程设计题目DVD仿真程序设计姓名杨梦鸽学号10104060119专业班级计科101指导教师评语指导教师成绩评定项目分值评分要素成绩1设计过程中出勤、学习态度等方面20上机出勤及端正的学习态度、认真刻苦程度等2软件设计质量40采用的算法、设计方案,设计结果,界面友好等方面进行综合评定3答辩20能简明扼要地阐述设计的主要内容,能准确流利地回答各种问题4设计报告书写10条理清晰,表述清楚、措词得当5实际动手能力10组长全面负责,承担复杂的模块设计分值就高总成绩CDialog类SmallPlayer类CAaDlg类Dlg1类。