基于VC的媒体播放器设计与功能实现 毕业论文.doc_第1页
基于VC的媒体播放器设计与功能实现 毕业论文.doc_第2页
基于VC的媒体播放器设计与功能实现 毕业论文.doc_第3页
基于VC的媒体播放器设计与功能实现 毕业论文.doc_第4页
基于VC的媒体播放器设计与功能实现 毕业论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

安徽新华学院本科毕业论文(设计) 本科毕业论文(设计)(题目:基于vc的媒体播放器设计与功能实现) 姓 名: 学 号: 0942057102 专 业: 电子信息科学与技术 院 系: 电子通信工程 指导老师: 职称学历: 助教 研究生 完成时间: 2013.5 教务处制安徽新华学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作者签名: 日期: 2013.5 基于vc的媒体播放器设计与功能实现 摘 要目前常见的多媒体软件应该说各有特点,但几乎每一个都存在着不如人意的地方。我的主题是“媒体播放器软件设计基于vc开发工具,首先介绍目前一些媒体和媒体播放器,然后介绍了一种由本人设计的多媒体播放器mediaplayer。基于vc播放器,使用系统mci(media控制接口)命令接口编程,具有体积小,支持的格式,占用系统资源少,支持播放列表编辑器,支持多种视频格式等功能优势。关键词:播放器;mci;播放列表;音频;视频 media player design and function realization based on vcabstractcommon multimedia software should have their own characteristics, but almost every no satisfactory way. my topic is media player software design development tool based on vc+, the first is the existing media and media player, and a multimedia playing their detailed design of media player. game player is an integrated development environment based on mfc, using the system mci (media controller interface) command interface programming, is small, support multiple format, occupying less system resources to support the playlist editor, support a variety of video formats such as functional advantages. keywords: media player; mci; play l ist; audio; video ii目 录1绪 论11.1课题研究的目的和术发展的现状11.1.1研究本课题的目的11.1.2技术应用的基本现状11.1.3论文完成的主要工作21.1.4本课题中的重点21.1.5基本功能描述21.2媒体格式简介.31.2.1什么是wmf sdk31.2.2 wmf sdk体系结构31.2.3 生成器结构31.2.4 读取器结构41.2.5 wmf sdk编程开发环境配置42 软件开发与设计52.1设计思路52.2设计步骤72.3界面设计102.4关键功能的实现133 系统测试223.1测试目的223.2测试环境223.3检测报告223.4测试结果244结 论.27致 谢.28参考文献.261 绪 论多媒体技术的概念及多媒体技术在十九年代早期的应用,经过十年多的发展,随着计算机科学的发展和网络的普及和多媒体技术的发展,已成为计算机领域的一个热点技术的发展,各种媒体格式的视图,如何简单和方便的播放各种媒体已经成为人们普遍关注的问题,和媒体播放器的开发已非常重要。1.1课题研究的目的和技术发展的现状1.1.1研究本课题的目的随着技术的发展,多媒体素材类型也有所增加,包括音频,视频,图像,动画,音频和视频,因为图像和其他大的信息容量,在过去的硬件限制,多媒体应用并不广泛,随着硬件技术的不断提高,多媒体技术已广泛用于各类人才。多媒体课件,网络课程的发展,网站,软件,项目管理和要求的多媒体材料的使用,所以为多媒体的发展准备了一个实际的意义,与其他多媒体播放器相比,这是一个强大的媒体播放器,占用空间小,它是密切结合现有的多媒体资源的应用现状,不仅具有直观感强,不失一般性。1.1.2技术应用的基本现状微软公司于1998推出的visual c + + 6,它是一个平台,支持win32应用程序(应用程序),服务(服务)和控制(控制)的可视化编程的集成环境。并用vc+ 5最大的区别是,它有更强大的功能,msdn(微软开发的网络)提供vc+ 6包括所有微软程序产品在线帮助;此外,可用的对象的成员函数的参数类型的类成员变量和成员函数,并可以在屏幕上动态地显示,使用户不用记得那些复杂的无聊的函数名和复杂的参数,使编程更容易使用。vc + + 6是微软的旗舰产品,功能强大且编程获得程序的偏好。多媒体技术进行了以下方面的有效应用:多媒体管理信息系统,显示系统。多媒体电子出版物(标题)。 计算机辅助教学,教育和培训的设计与制作;电脑艺术;电脑游戏娱乐;双向电影;协同工作。有三个主要趋势:进一步提高计算机支持的协同工作环境下的智能;多媒体技术;多媒体信息实时处理和压缩算法集成到cpu。1.1.3论文完成的主要工作 根据研究,基于vc的mfc对话框的媒体播放器的开发,利用windows mci(媒体控制接口)处理控件,vc 6与activex控件activemoviecontrol对象来实现各种格式的媒体播放和程序界面。首先确定所要解决的问题是明确的名称的mci函数和命令的消息类型和功能;其次是流媒体的具体过程的分析,在公开的媒体装置的应用需要做的事情,所以在加入过程支持代码的应用程序;一个粗略的轮廓,在应用程序的程序(最好的画流程图),开始考虑设计程序框架,设计应用程序的外观;最后也是最关键的是编写代码以显示此功能的媒体播放器的基本实现,再次是程序的调试和完善。1.1.4本课题中的重点本课题中的重点是在activemovie控件的应用,动态控制em电影是微软公司推出的多媒体编程控制提供音频和视频媒体文件非常声音的播放,可以支持多种文件格式,普通的wav文件和avi文件的视频文件mpeg压缩格式,可以正常播放。控件可以自动区分基于文件扩展名的设备类型,并完成相应的控制。因此,如果你的应用程序准备提供多媒体支持,然后使用activemovie控件是一个好主意。事实上,许多优秀的多媒体应用,多媒体播放是使用activemovie控件实现设计的应用精心程序的用户界面,我们可以开发一个功能齐全,美观大方,具有高水平的多媒体播放器。使用一个activemovie控制多媒体应用的发展可以大大提高多媒体开发效率,只要设置控件的文件属性,名,来确定控制开放媒体文件名,然后执行run方法可以播放媒体文件;通过设置选择。最后用鼠标点击按钮完成播放,停止,暂停,快进,快退等功能。1.1.5基本功能描述多媒体播放软件现在几乎成为每个家庭电脑安装必要的软件,比较流行的 有迅雷播放器,windows媒体播放器和快播、百度影音等等,可以播放mp3,rm,rmvb,mpeg,由软件dat等格式的多媒体文件。这些商业软件的功能已经做得相当完美,也符合大多数普通消费者的胃口,但是很多人的电脑安装不同的播放器,因为不同的播放器有不同的特点,并不是每个人都连接到一个播放器,设计一个符合自己的习惯的播放器是可行的。vc+6.0强大的mfc、appwizard、class wizard,方便使用,类似向导和各种控件可以方便地建立各种应用程序。同时,要实现更先进和复杂的功能,还可利用资源的activex控件,在现有资源的控制,可以节省自己编程的复杂的过程,从而实现更先进的功能。本课程是专为使用vc 6控制一个activexwindows媒体播放器控件,建立自己的多媒体播放器。该多媒体播放器打开该文件,播放,暂停,快进,全屏幕,调整音量,倒带和其他基本的播放功能,可以播放:mp3,wma ,*,*,*,*,mdi,wav,avi,*。视频和音频文件格式,如dat。同时也使隐藏的播放列表,可以选择播放,随机顺序、单周期随机播放,在三个方面:将单周期随机有打开的文件,播放,暂停,在播放模式下关闭,是个人的选择项。1.2 媒体格式简介 1.2.1什么是wmf sdk wmf sdk是微软windows media技术的重要组成部分,它基于com技术,可以方便地开发具有高性能要求的多媒体应用程序。对wmf sdk关键技术作了概括介绍,并给出了采用visual c+编程语言开发视频播放器的软件实现过程。wmf sdk采用了面向对象的设计,是一套完全基于com组件模型的高级开发包。它引入的生成器,读取器,器等对象屏蔽了asf数据格式、传输控制等较为底层的流媒体技术实现细节,留下比较上层的编程接口给开发者使用。 1.2.2 wmf sdk体系结构windows media format sdk 具有许多处理 asf 文件的功能,但其核心功能是读写文件。1.2.3 生成器结构 使用windows media format sdk构建应用程序将生成器源介质样品的传递。生成器设置指定的配置文件的目标代码的文件。配置文件定义的编码格式的文件,包括每个流程的详细信息和如何处理信息流。大多数的音频和视频流的媒体编码解码器处理。然而,代码首先与转换器来处理数据,准备压缩。当样品被放置在一个文件中,然后转移到多路复用器,多路复用器根据介绍时间从所有流的行扫描采样和数据包。比特流复用器的创建和发送到接收器,用于治疗的最终目的的i / o接收机,无论是在磁盘或互联网或其他网络播放的文件。 1.2.4 读取器结构 读取过程和数据写入过程基本相同,但顺序是相反的。读取器连接到源,源可以是一个文件,网络连接或自定义源。分流处理文件的数据部分,数据被划分成一个流的样本,然后解压缩的样品(如果启用drm保护),并通过相应的处理windows媒体编码解码器。默认情况下,读取器会自动选择合适的解码解压缩的asf数据流。1.2.5 wmf sdk编程开发环境配置 wmf的sdk是唯一适合的c / c + +编程语言,开发平台可以在vc + + 6或visual studio .net。本文vc6.0.open vc 6的设置方法,选择菜单命令工具选项,单击“目录,选择包含文件显示目录中的下拉菜单,然后安装路径,在vc sdk标准路径。vc6.0工程应用的开发,调试版本还需要以下设置:选择在项目设置菜单命令,输入标签链接,一般选择类别的下拉列表,winmm.lib和wmvcore.lib文件添加到对象/库模块忽略所有默认库并选择。2 软件开发与设计2.1设计思路 根据每个按钮的控制功能和windows媒体播放器控件的特点,首先要cwmpcontrol在头文件中。cwmpsettings对象,结合和定义,需要在程序的后面的调用类的成员函数。打开文件按钮,调用的通用文件对话框类,并使用选定的文件到播放列表addstring列表功能,在mfc的研究。对一些基本功能的实现,如播放,暂停,音量,体积缩小,全屏幕,静音,快进,快退等功能,一个成员函数的调用cwmpcontrol和cwmpplayer类实现。 打开? 读取播放列表 播放 添加播放列表设置文件过滤 初始化 开始 播放控制播放列表的大小和方向,本设计使用setwindowpos函数来改变一个窗口弹出,和一些对保存列表,删除列表的实现相关的功能,删除当前的功能。播放列表,我还增加了播放模式选择功能,提供玩,然后循环周期,单周期三个选择的ontimer函数和函数能够控制播放模式的运用。根据上述思路设计,流程图如图2.1所示:n y播放模式 退出?n 图2.1 流程图 退出 y2.2.设计步骤 首先,打开microsoft visual studio6.0软件,新建一个工程如图2-2所示, 图2.2 工程建立图2.2 工程建立 以kejian为工程名,然后将此工程定义为基于对话框的mfc应用程序如图2.3所示,点击完成就成功建立了一个基于对话框的工程。在建立好工程之后,首先是windows media player控件的添加:建立空白对话框之后,在对话框的空白处单击鼠标右键,选择insert activex control菜图2.3单项。选择windows media player控件。加入控件后,此时该控件与该对话框并没有联系,需要对其进行变量的关联。 添加完该控件之后可以发现,该控件与右边控件工具栏添加的控件的形式与功能完全不同,是一种更为高级的控件,将该控件名改为idc_player, 如图2.5所示。图2.6 windows media player控件虽然已已经添加了该控件,但是可以发现,改控件没有与工程中的对话框发生任何联系,所以需要对其进行变量的关联,所属类为kejian类,变量类型为cwpplayer4如图2.7所示。 图2.7 关联变量 关联变量之后,才算是真正的添加完了该控件,可以发现在关联变量之后,控件工具栏多了windows media player控件的选项,并且在source files中增加了17个类,相应的头文件也增加了17个,如图2.8所示。图2.8 添加控件后的变化一类重要的cwmpplayer4,cwmpcontrols,cwmpmedia,cwmpplaylist,cwmpsettings五类。该cwmpplayer4类是呼叫的其他类型的主要对象以及基本的控制功能,提供与windows媒体播放器控件交互的一种基本方法,其中的成员函数也可以从其他相关对象的情况下获得的部分;cwmpcontrols主要是控制多个操作;类cwmpmedia主要是一些媒体文件资源;cwmpplaylist主要播放操作;cwmpsettings主要是一些基本的集合操作的媒体文件。为控制添加和内部功能的认识需要更多的时间来完成这个熟悉的,添加关键控制后,接口设计。2.3.1界面设计首先是打开按钮,用来打开此媒体文件。然后,播放,暂停,快进,快退,全屏,音量,体积减小,静音,停止播放,退出按钮。变量的相关性,于id的修改在表2-1,表2-2所示: 表2-1 :控件id以及关联变量控件caption按钮id关联变量类型关联变量名称wmplayeridc_playercwmplayer4m_zhuangwenfeng表2-2 控件id以及对应响应函数控件caption按钮id消息响应函数打开idc_openonopen播放idc_playonplay暂停idc_pauseonpause全屏idc_fullscreenonfullscreen播放列表idc_listonlist列表框idc_list1ondblclklist1快进idc_fastforwardonfastforward快退idc_fastreverseonfastreverse+(音量增加)idc_addvolonaddvol-(音量减小)idc_decvolondecvol静音idc_muteonmute表2-3 控件id以及对应响应函数控件caption按钮id消息响应函数停止idc_stoponstop保存列表idc_saveonsave删除列表idc_dellistondellist删除当前idc_dellistcurondellistcur退出idc_exitonexit关于idc_aboutonabout以上是关联的对象对应的控制,除了相应的控制,也需要一些有17种windows媒体播放器控件生成的类的对象被定义,和成员函数的定义,和一个对象的成员声明放在头文件中,本设计主要有3步,因为设计出提醒弹出框,所 以他们会在它的定义,如表2-3所示表2-4 其他类及对应对象类名对象名类名对象名cwmpcontrolsm_controlcstringm_pathnamecwmpsettingsm_settingcheckccheck除了各控制变量的函数和响应消息,以及相关的对话框类的消息响应函数,因为播放模式选择功能添加这样的设计,因此需要使用wm_timer消息响应函数和函数ontimer()和()函数来实现这一功能,对话框的消息响应程序书写功能的相关性。添加的方法如图2.9所示。图2.9添加wm_timer消息响应函数 图2.10 多媒体播放器界面最终得到各个空间分布后的界面如图2.10所示。图2.10多媒体播放器interfacein除上述主对话框,我也在aboutbox进行了重新设计,还做了一个检查”对话框,在其中aboutbox如图2.10所示。检查对话框退出按钮,弹出提醒窗口,当用户点击,主要是用来防止用户不小心按下关闭按钮使程序关闭,这有利于用户,加强友好的软件,如图2.11所示。 图2.11 修改后的aboutbox对话框 于菜单的制作,首先,需要在resourceview中加入资源menu,后增加对应的菜单项以及菜单自己布局,下拉菜单则需要和按钮关联,其方法是将其id和按钮的id一样,菜单布局图2.12所示。 图 2.12 菜单栏2.4关键功能的实现 对于各个函数的介绍,本文以关键代码以及注释的方式进行介绍,首先介绍主对话框中函数的实现以及说明:(1)onopen();打开函数void cejiandlg:onopen() char szfilefilter=all file(*.*)|*.*|avi file(*.avi)|*.avi|mp3 file(*.mp3)|*.mp3|mpeg file(*.mpeg)|*.mpeg|media file(*.asf)|*.asf|video file(*.dat)|*.dat|mpga file(*.mpga)|*.mpga|wave file(*.wav)|*.wav|movie file(*.mov)|*.mov|midfile(*.mid;*,rmi)|*.mid;*.rmi|wmafile(*.wma)|*.wma|rmvb file(*.rmvb)|*.rmvb|all file(*.*)|*.*|; /可选的文件类型 cfiledialog dlg(true,null,null,ofn_hidereadonly|ofn_allowmultiselect|ofn_nochangedir,szfilefilter); /ofn_allowmultiselect是允许选择多个文件 ofn_nochangedir是不改变当前目录 position pos=dlg.getstartposition(); if(dlg.domodal()=idok) while(pos!=null) m_pathname=dlg.getnextpathname(pos);/得到完整的文件名,包括目录名和扩展名 m_list.addstring(m_pathname);/增加到播放列表 问题是理解的奇怪的功能,因为大量的类,并且每个成员函数是不同的,更难以使用。除了常见的文件对话框和更熟悉的,其他的功能通常是不可见的。通过增加播放目录的路径名主要取决于getnextpathname()函数,该m_list.addstring()函数是添加到播放列表中的项目名称 (2)onlist();播放列表按钮函数和ondblclklist1();播放列表函数: void ckejiandlg:onlist() flag=!flag; if(!flag) setwindowpos(null,0,0,400,430,swp_nomove);/播放列表初始位置状态else setwindowpos(null,0,0,590,430,swp_nomove);/点击按钮后播放列表位置状态播放按钮设计功能是运行软件播放器播放的是隐藏的,当你点击按钮,弹出的列表。为了实现这个功能,我会一起播放列表和播放表按钮。为此,该程序定义了一个全局变量的图标,把它作为一个标志,在初始化定义窗口无相对位移,当你点击按钮,位移的窗口,它会达到隐藏和功能的播放列表。但对播放列表,它需要实现双播放功能,所以加上控制列表消息映射,并选择双击消息响应函数,如图2,13所示。该项目也加入了执行响应函数()函数,当你点击功能开始创 建一个计数器,从而实现播放模式功能。 图13 播放列表消息影像函数设置ckejiandlg 具体程序如下所示: void ckejiandlg:ondblclklist1();/双击播放函数 cstring str int index=m_list.getcursel();/获取选择的行数 m_list.gettext(index,str); m_ckejiandlg.seturl(str);/播放 m_pathname=str; settimer(1,1000,null); /在点击播放时就创建计时器 每隔1秒就自动执行下响应函数ontimer()(3)onplay();播放函数及其他多媒体播放控制按钮void ckejiandlg:onplay() m_control.play(); /暂停后继续播放如同播放函数所示,其他控制播放状态的函数都可以直接调用添加的控件的类的对象调用实现,按钮响应函数和调用的函数关系如表2-5所示。 表2-5响应函数和调用函数关系响应函数调用函数响应函数调用函数onfastre6verse()m_control.fastreverse()onfulscreen()m_kejian.setfullscreen(1)onfastforward()m_control.fastforward()onmute()m_setting.setvolume(m_setting.getmute();onstop()m_control.stop()onaddvol()m_setting.setvolume(m_setting.getvolume()+10)onpause()m_control.pause()ondecvol()m_setting.setvolume(m_setting.getvolume()-10(4)播放列表状态 这款播放器设计了保存播放列表、删除播放列表、删除当前三种对播放列表状态的控制,其中函数主要调用了m_list类中的函数,在初始化是加入了一个读取上次保存的播放列表的指针函数,增加了播放列表的人性化。具体函数如下:void ckejiandlg:onsave() cstdiofile file;file.open(.list.txt,cfile:modecreate|cfile:modereadwrite|cfile:typetext);/打开指定文件for(int i=0;isetcheck(true);/默认播放模式为顺序播放 计数器函数ontimer程序如下:void ckejiandlg:ontimer(uint nidevent) int index=m_kejiandlg.getplaystate();/获取播放状态if(index=1)/如果播放完成if(cbutton *)getdlgitem(idc_radio1)-getcheck()/如果是顺序播放cstring str;int index=m_list.getcursel()+1;if(index=m_list.getcount() index=0;/如果播放完最后一曲就自动播放第一首m_list.gettext(index,str);m_kejian.seturl(str);m_list.setcursel(index);/自动置光标/这样就实现了顺序播放if(cbutton *)getdlgitem(idc_radio2)-getcheck()/随机播放srand(time(0);/目的在于每次都能产生不同的随机数序列m_list.setcursel(rand()%m_list.getcount();/随机选择0-m_list.getcount()-1的任意一个数即随即选择m_list里的文件m_list.gettext(m_list.getcursel(),m_pathname);m_kejian.seturl(m_pathname);if(cbutton *)getdlgitem(idc_radio3)-getcheck()/单曲循环m_list.gettext(m_list.getcursel(),m_pathname);m_kejian.seturl(m_pathname);cdialog:ontimer(nidevent);(6)onabout()和onexit()函数 因为调用自身编辑的对话框并且修改了工程中的aboutbox资源,所以也要对其进行一定的修改。首先,是对onabout()函数的修改:void ckejian:onabout() caboutdlg aboutdlg; aboutdlg.domodal(); 其次,在onexit()函数的重载。添加对话框,制作简单没有介绍,这是介绍添加对话框和相应的类和添加的头文件。制定一个好的对话框,对话框的使用classwizard对话框类的关联,作为一个调用的结果,因此建立对象的对话框框,如图2.15中所示。 图2.15 选择创建一个新的类,你需要在输入并输入一个名称,将添加一个对应的check.cpp和检查。在项目文件视图文件是确定的,那么你可以在自制的对话框类和对象。所谓的对话框如下图所示,和删除在完成退出计数器,释放内存。void ckejiandlg:onexit() ccheck check; /生成ccheckbox类的对象checkbox if(check.domodal()=idok) /弹出对应的模态对话框 cdialog:oncancel(); /点击确定则退出killtimer(1);/退出程序时删除计数器 (7)的菜单栏添加生产函数做一个菜单栏添加只要到对话框中相应的,本文不再。每个菜单项的功能,只要菜单项进入相应的功能按钮控制相应的id相同,可以方便快速地调用。3 系统测试3.1测试目的 根据用户需求,设计,概要设计和详细设计测试用例,测试软件系统。其目的是: 1:测试是为了发现错误的程序,程序的执行过程。2:好的测试方案是可能发现的错误的测试计划到目前为止还没有被发现。3:成功的测试是发现到目前为止被发现的错误的测试。3.2测试环境 visualc+6.0操作系统windows xp。测试重点是系统后台基本功能模块。3.3调试报告有在设计过程中的许多错误,错误的搜索使用vc+ 6编译,根据错误,改正错误。在这一点错误不重复,有没有相应的头文件,在一个小错误,正确的变量名称不明确,容易修改,将在下面描述,程序的调试和误差修正方法(1)问题一 在播放列表的设计时,单击“播放列表成员没有播放的文件已被修改,代码没有改变,所以,经过一段时间的一个按钮,而不是双发挥的功能如图3.1所示。 图3.1 调试结果1 最终在在线数据获取的问题的解决方案:双播放功能,在播放列表中添加一个双击消息映射函数的实现,然后ondblclklist1()的代码,从而实现双播放功能。(2)问题二图3.2类绑定 此段程序在oninitdialog()函数中,连接编译都未报错,但是播放、暂停等多个按钮控件无法工作。后考虑到其他类都进行了的类的绑定,所以也要对cwmpcontrols类进行绑定,其中static_cast相当于将某一对象和赋值符号右边的值进行绑定,由于是静态绑定,故绑定后不再改变,而后续程序中出现的m_control对象却并未出现对应的绑定,如图3.2所示。添加代码: m_control = static_cast(m_wmplayer.getcurrentcontrol();之后,后续的控件的操作可以正常进行了。(3)问题三alog()函数,编译器将不会连接错误,但播放,暂停等多个按钮控件将不工作。在其他类的账户是类绑定,所以也被结合在static_cast cwmpcontrols,相当于一个对象,指定一个符号在绑定的值的右侧,是静态绑定,绑定不改变,并在随后的程序m_control对象的出现是不受约束的相应的。添加代码:m_control = static_castcwmpplaylist (m_wmplayer.getcurrentcontrol();在那之后,操作的控制可以是正常的。(4)停止按钮开始编程,直接调用m_control.stop功能,如图3.3所示,但当调试时,请单击“停止”按钮,玩家停止然后继续播放下一首歌。经过分析,它是计数功能的问题,由于游戏模式功能外,当停止时,计数器不停止工作,应对本轮继续播放功能的执行,所以后来添加删除计数器代码:killtimer(1),如图所示。void ckejiandlg:onstop()m_control.stop();/停止函数void ckejiandlg:onstop()m_control.stop();/停止函数killtime(1);删除计数器 图3.4修改后的代码 图3.3 原来的代码 图3.4所示问题解决 (5)问题四 在退出按钮设计的四个问题是设计一个退出提醒功能,以防止用户不小心使用时的错误和错误的退出程序,开始更正了这一点,然后让学生得到答案,然后添加另一个对话框,然后创建一个新的类别,增加在头文件#包括“检查”,然后进行编程,以实现特定的功能,如图3.5所示。 图3.5 3.4 测试结果 图3.6 刚运行时隐藏播放列表 图3.7 关于对话框 图3.8 菜单功能 28结 论 从程序运行调试的结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论