您好,欢迎访问三七文档
-1-南京工程学院多媒体编程基础课程综合作业说明书题目(根据自己设计的软件特色定题)班级学生姓名学号成绩-2-2011年10月28日注:本周五(10月28日)检查综合作业程序完成进度,打初步印象分;综合作业报告最迟11月9日上交(包括源代码和作业电子稿、打印稿)。提交文件格式:202060236_杨文龙_多媒体081.rar实验报告5如果来不及也可以推迟到11月9日上交如有特殊情况由班长和我联系。一、程序功能与设计思路设计目标具有的功能(必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个标志,放在窗口界面上,最好是带动画效果)界面效果图框架结构图等=========================================================================格式及内容的示例(注意文本、图、表格的格式):=========================================================================1.1WMPlayer媒体播放器程序实现功能说明如下:按路径选择播放媒体文件,可以支持MP3、WMA、WMV、AVI、RM、RMVB、FLV、MP4等格式。将媒体文件加入菜单中下拉列表框。在列表中随意选择要播放的媒体文件。控制媒体文件的播放、暂停、停止。指定播放当前文件的上一个或下一个媒体文件。在播放时,可以获取并显示当前播放媒体的文件信息。程序运行界面如图5_1所示。-3-(1)新添四个图标资源,通过图像设备选择对话框,选择16*16作为图标的设备类型。图标ID号分别默认IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4.(2)用图形编辑器绘制标vc++.(3)为CMainFram类添加一个成员函数ChangeIcon,用来切换应用程序的图标。该函数代码如下:voidCMainFrame::ChangeIcon(UINTnIconID){HICONhIconNew=AfxGetApp()-LoadIcon(nIconID);HICONhIconOld=(HICON)GetClassLong(m_hWnd,GCL_HICON);if(hIconNew!=hIconOld){DestroyIcon(hIconOld);SetClassLong(m_hWnd,GCL_HICON,(long)hIconNew);RedrawWindow();}}(4)在CMainFrame::OnCreate函数的最后添加计时器设置代码:SetTimer(1,500,NULL);(5)给CMainFrame类添加WM_TIMER的消息映射函数,并添加代码:voidCMainFrame::OnTimer(UINT_PTRnIDEvent){staticinticons[]={IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4};staticintindex=0;ChangeIcon(icons[index]);index++;if(index3)index=0;//TODO:在此添加消息处理程序代码和/或调用默认值CFrameWnd::OnTimer(nIDEvent);}(6)在CMainFrame类添加WM_DESTROY的消息映射函数,并添加下列代码voidCMainFrame::OnDestroy(){CFrameWnd::OnDestroy();KillTimer(1);}-4-图1_1WMPlayer媒体播放器运行界面1.2WMPlayer媒体播放器的设计思路:首先创建一个基于CLR的Windows窗体应用程序,接下来在窗体中添加一个AxWindowsMediaPlayer控件,然后利用控件的属性和方法实现媒体的播放和控制操作;此外,还要添加菜单栏用于打开文件、添加播放列表、选择播放文件、控制播放以及退出应用程序等操作;添加状态栏用于显示媒体的标题和文件类型信息。其功能结构如图5_2所示。图1_2WMPlayer功能结构图面二、相关原理知识介绍所应用到的知识点介绍,如:文字处理函数,GDI+函数等=========================================================================格式及内容的示例(注意文本、图、表格的格式,尤其图表的编号和代码的格式):=========================================================================文字处理我们在使用各种软件的时候,都要涉及到文字的处理,其中就包括要选择使用不同的字体,因此,需要重点了解字体的含义、原理、以及如何使用这些字体,并创建符合自己要求的字体。Windows使用了两种主要字体:一种是等宽字体,一种是可变宽字体。同时Windows又定义了三种不同类型的字体:光栅字体(点阵图字体)、矢量字体(由一连串线段构成的字体)、TrueType字体(用线条和样条曲线来定义字体轮廓的字体),其中TrueType字体可以进行任何限度的缩放,而字体却仍然保持良好的质量。无论哪种字体,Windows都是使用TEXTMERIC和LOGFONT两个结构来进行描述的。我们通过这两个结构来获得字体信息,自定义我们需要的字体。-5-在三种形式的成员函数中:Drawing-AttributeFunction(如:DetTextColorGetTextColor等)TextFunctionFontFunctionGDI对象对字体的支持为了能够绘制各种类型的文本、图形图象信息,Windows操作系统提供了6个GDI对象,分别为字体、位图、画刷、调色板、画笔和区域。在MFC类库中,分别对应于CFont、CBitmap、CBrush、CPalette、CPen和CRgn类。下面以使用CFont类为例介绍如何使用GDI对象。CFont类用于描述文本的字体信息,下面的示例将指定字体格式的文本输出到窗口中。多媒体动画及视频,音频计算机动画显示是利用人眼的视觉暂留特征。如果不断在平米上显示内容接近的图片或图形,事件错觉,会使人感到这些图片中的图形是活动的,所播放的图片速度不能低于24张,否则人眼对动画感觉调用就不会那么连贯。应用程序通过SetTimer()函数来完成对新的定时器的申请设置,这个函数的原型如下:CWnd::SetTimer(UINTnIDEvent,UINTnElapse,Void(CALLBACK*lpfnTimer)(HWND,UINT,UINT,DWORD);参数说明:nIDEvent:指定一个非0的定时器标示符。nElapse:以毫秒知识限时值。lpfnTimer:指示处理WM_TIMER消息的程序提供的TimerProc回调函数的地址为NULL,则消息放到程序队列中由该CWindow对象处理。返回值:成功则返回定时值的标示符,否则返回0当不需要定时器时,可以调用KillTimer()函数来停止传送WM_TIMER消息,其函数原型如下:CWnd::KillTimer(UINTnIDEven);当定时器用尽时,在调用KillTimer()函数时,返回NULL,表示无可用。正场调用时,返回值部位0。加载应用程序Wave资源若程序中需要播放较小的wav文件,可以讲wav文件加载为应用程序的资源。程序可直接使用wav资源文件就可以了。为了播放wav资源,需要使用系统提供的PlaySound函数,不仅可以播放wav资源,还可以播放wav文件。格式如下:BOOLPlaySound(LPCSTRpszSound,HMODULEhmod,DWORDfdwSound):参数说明:pszSound:表示播放声音的字符串,可以是表示资源的字符串,也可以是表示wav文件的字符串,最大长度256个字符,包括终止符。-6-Hmod:表示包含wav资源的可执行文件句柄。fdwSound:表示声音的播放标记。虽然可使用PlaySound函数播放wav文件,但是音频必须完全载入物理内存,音频文件较大,则不适合使用,此时课使用mciSendCommand函数来取代PlaySound函数实现wav文件的播放。函数语法如下:MCIERRORmciSendCommand(MCIDEVICENDIDDevice,UINTnMSG,DWORDfdwCommand,DWORD_PTRdwParam);参数说明:IDDevice:表示接收消息的MCI设备标示符。uMsg:表示命令消息。绘图知识图形是由点和线构成的,设备环境CDC类提供了多个方法绘制线条。1)MoveTo该方法用于移动当前的坐标点到指定的位置上。CPointMoveTo(intx,inty);参数说明:x:表示当前位置的x轴坐标。y:表示当前位置的y轴坐标。2)LineTo该方法用于从当前坐标点绘制一条直线到参数指定的位置。BOOLLineTo(intx,inty);参数说明:x:表示直线终点的x轴坐标。y:表示直线终点的y轴坐标。画笔是Windows应用程序中用来绘制各种直线和曲线的一种图形工具,它可分为修饰画笔和几何画笔两种类型。在这两种类型中,几何画笔的定义最复杂,它不但有修饰画笔的属性,而且还跟画刷的样式、阴影线类型有关,通常用在对绘图有较高要求的场合。而修饰画笔只有简单的几种属性,通常用在简单的直线和曲线等场合。一个修饰画笔通常具有宽度、风格和颜色三种属性。画笔的宽度用来确定所画的线条宽度,它是用设备单位表示的。默认的画笔宽度是一个像素单位。画笔的颜色确定了所画的线条颜色。画笔的风格确定了所绘图形的线型,它通常有实线、虚线、点线、点划线、双点划线、不可见线和内框线等七种风格。三个重载的构造函数-7-CPen();CPen(intnPenStyle,intnWidth,COLORREFcrColor);CPen(intnPenStyle,intnWidth,constLOGBRUSH*pLogBrush,intnStyleCount=0,constDWORD*lpStyle=NULL);图像处理技巧在Windows的画图程序中,打开“编辑颜色”窗口时,当鼠标在颜色区域移动时,右方的显示区域和下方的编辑框中会显示相应的颜色和颜色值。本例实现该功能。技术要点:获取某一点的颜色只要得到当前鼠标的设备环境CDC类对象即可,因为调用CDC类的GetPixel方法可获取某一点的颜色值。VC提供了三个宏,用于获取某一颜色的红、绿、蓝三基色。1)GetRValue宏该宏用于获取指定颜色的红颜色值2)GetGValue宏该宏用于获取指定颜色的绿颜色值3)GetBValue宏该宏用于获取指定颜色的蓝颜色值BYTEGetRValue(DWORDrgb);rgb标识一个颜色值。返回值:指定颜色的红色值。BYTEGetGValue(DWORDrgb);rgb标识一个颜色值。返回值:指定颜色的绿色值。rgb标识一个颜色值。返回值:指定颜色的蓝色值。WindowsAPI函数。函数原型:HWNDChildWindowFromPoint(HWNDhWnd,LONGxPoint,LONGyPoint);函数功能:返回父窗口中包含了指定点的第一个子窗口的句柄。函数参数:hWnd父窗口的句柄xPoint点的X坐标,以像素为单位yPoint点的Y坐标,以像素为单位返回值:发现包含了指定点的第一个子窗口的句柄。如未发现任何窗口,则返回hWnd函数功能:该函数把相对于一个窗口的坐标空间的一组点映射成相对于另一窗口的坐标空间的一组点。函数原型:intMapWindowPoints(HWNDhWndFrom,HWNDhWndTo,LPPOINTlpPoints,UINTcPoints);-8-参数:hWndfrom:转换点所在窗口的句柄,如果此参数为NULL或HWND_
本文标题:综合作业报告格式
链接地址:https://www.777doc.com/doc-2139928 .html