您好,欢迎访问三七文档
1南京工程学院多媒体编程基础课程综合作业说明书题目多媒体综合设计班级K软件测试101学生姓名贺稳学号2401018252013年6月22日2一·程序功能与设计思路(必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上)1、主界面1.1主界面实现功能说明如下:菜单项包括文字处理、绘图、图像、音频视频,帮助,点击进入各个功能界面动画显示小蛇吐信1.2界面效果显示:31.3主界面设计思路:首先创建一个基于对话框的对话框的MFC应用程序,然后在资源里添加五个菜单栏和四个对话框并将其对应连接起来,在主对话框菜单栏中添加四个菜单选项与四个子对话框链接,以实现点击菜单项跳出对应的对话框。其功能结构如下:主界面文字处理绘图帮助音频视频播放图像处理42、文字处理2.1文字实现功能说明如下:菜单项包括文字渐变、文字旋转、颜色背景颜色显示、文字镂空,点击菜单项将显示各个功能。2.2界面效果显示:562.3文字处理功能结构图:3、绘图工具3.1绘图工具实现功能如下:画圆画椭圆画矩形文字处理文字旋转倾斜文字颜色渐变镂空文字73.2功能界面效果显示84、图像处理4.1图像处理实现功能如下:从本地磁盘打开文件图片去色浮雕效果颜色拾取锐化效果颜色取反4.2功能界面效果显示9.3图像处理功能结构图:图片处理打开锐化镂空取反去色105、音频视频播放5.1音频视频功能实现:从本地磁盘添加音频视频文件双击播放音频视频文件点击播放按钮播放文件点击上一个、下一个选择当前文件的上一个、下一个文件5.2功能界面显示115.3音频视频播放功能结构图:二.相关原理知识介绍1.输出指定字体定义系统以外的字体,可以调用函数GreateFont自行创建音频视频播放添加文件控制播放上一个下一个12HFont=CreateFont(intnHeight,//字体高度,0采用系统缺省值,使用逻辑单位intnWidth,//字体宽度,取0则由系统根据高宽比取最佳值intnEscapement,//每行文字相对于页底的角度,单位为0.1度intnOrienation,//每个文字相对于页底的角度,单位为0.1度DWORDnWeight,//字体粗细度,范围为0~1000DWORDDwltalic,//如果要求字体倾斜,则取非零DWORDdwUnderline,//如果要求下划线,则取非零DWORDdwStrikeout,//如果要求中划线,则取非零DWORDdwCharset,//字体所属字符集DWORDdwOutputPrecision,//输出精度,一般取缺省值OUT_DEFAULT_PRECISDWORDdwClipPrecision,//剪裁精度,常取缺省值CLIP_DEFAULT_PRECISDWORDdwQuality,//输出质量,一般取缺省值DEFAULT_QUALITYDWORDdwPitchAndFamily,//字体名)2.文本输出常用的文本输出函数TextOut原型如下:BOOLTextOut(HDChdc,intX,intY,//X,Y为用户区中字符串的起始坐标LPCTSTRlpstring,//lpstring为显示的字符串intnCount//nCount为字符串中的字节数);2、简单绘图工具2.1绘图的基本方法实现简单图形的绘制,绘图功能中,有绘制直线、矩形、椭圆、涂鸦等。用到的方法如下:CPointMoveTo(intx,inty);//直线起点CPointLineTo(intx,inty);//直线终点BOOLRectangle(intx1,inty1,intx2,inty2);//绘制矩形BOOLEllipse(intx1,inty1,intx2,inty2);//绘制椭圆涂鸦部分,以鼠标移动的轨迹画线。同样要用到MouseMove()函数。使起点为鼠标前一个位置,终点为鼠标当前位置,以画直线的方式完成。对于线型、线宽、颜色的设置,通过使用颜色通用对话框完成。2.2绘图时需要用到的设备环境类介绍设备环境类CDC提供了绘制和打印的全部函数。为了能让用户使用一些特殊的设备环境,CDC还派生了CPaintDC、CClientDC、CWindowDC和CMetaFileDC类。(1)CPaintDC比较特殊,它的构造函数和析构函数都是针对OnPaint进行的,但用户一旦获得相关的CDC指针,就可以将它当成任何设备环境(包括屏幕、打印机)指针来使用。CPaintDC类的构造函数会自动调用BeginPaint,而它的析构函数则会自动调用EndPaint。(2)CClientDC只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状13态栏)中进行绘图,点(0,0)通常指的是客户区的左上角。而CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。CWindowDC和CClientDC构造函数分别调用GetWindowDC和GetDC,但它们的析构函数都是调用ReleaseDC函数3图像处理的基本方法显示图像的方法并不复杂,图像已经绘制好保存在文件中,需要做的工作就是有效加载图像文件并让它显示出来,这里我们讨论几种最常用的方法。LoadImage加载图像该函数装载图标,光标,或位图。函数原型:HANDLELoadImage(HINSTANCEhinst,//包含图像的实例句柄,可以为NULLLPCTSTRlpszName,//图像的资源名称,本机加载,完整路径UINTuType,//图像类型intcxDesired,//加载的位图,参数为0intcyDesired,//加载的位图,参数为0UINTfuLoad);//返回加载的图像句柄图像文件只支持bmp类型的。获取鼠标位置的颜色值VC提供了三个宏,用于获取某一颜色的红、绿、蓝三基色。1)GetRValue宏该宏用于获取指定颜色的红颜色值2)GetGValue宏该宏用于获取指定颜色的绿颜色值3)GetBValue宏该宏用于获取指定颜色的蓝颜色值BYTEGetRValue(DWORDrgb);rgb标识一个颜色值。返回值:指定颜色的红色值。BYTEGetGValue(DWORDrgb);rgb标识一个颜色值。返回值:指定颜色的绿色值。BYTEGetBValue(WORDrgb);14rgb标识一个颜色值。返回值:指定颜色的蓝色值。提取颜色GetPixel方法该方法用于获取某一点的颜色值。语法:COLORREFGetPixel(intx,inty)const;COLORREFGetPixel(POINTpoint)const;参数:x、y、point标识坐标点。返回值:坐标点的颜色值。SetPixel方法该方法用于设置某一点的颜色值。语法:COLORREFSetPixel(intx,inty,COLORREFcrColor);COLORREFSetPixel(POINTpoint,COLORREFcrColor);参数x、y、point标识坐标点。crColor标识设置的颜色值。返回值:坐标点实际显示的颜色值。4音频视频播放Wav文件用mciSendCommand函数语法如下:MCIERRORmciSendCommand(MCIDEVICEIDIDDevice,UINTuMsg,DWORDfdwCommand,DWORD_PTRdwParam);参数说明:IDDevice:表示接收命令消息的MCI设备标识符。uMsg:表示命令消息,使用mciSendCommand函数,需要15引用Mmsystem.h头文件,链接Winmm.lib库文件。#includeMmsystem.h//应用头文件#pragmacomment(lib,“Winmm.lib”)//引用库文定义一个CPlayWave类,用于打开波形设备、播放wav文件、关闭波形设备。向视图类中添加一个CPlayWave成员。CPlayWavewave;向视图类中添加一个按钮,处理按钮的单击事件。//定义一个CPlayWave成员voidCPlayWaveView::OnBtPlay(){wave.Stop();//停止播放wave.Play(m_hWnd,WindowsXP登录音.wav);//开始播放wav文件}使用MCIWndCreate函数播放avi文件在PlayAviDlg.app中引用vfw.h头文件并链接Vfw32.lib库文件。#includeVfw.h//引用头文件#pragmacomment(lib,“Vfw32.lib”)//链接库文件处理“OK”按钮的单击事件,弹出文件打开对话框让用户选择一个avi文件,并进行播放。voidCPlayAviDlg::OnOK(){CFileDialogflDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,AVI文件|*.avi||,this);//定义文件打开对话框if(flDlg.DoModal()==IDOK)//判断用户是否单击OK按钮{MCIWndDestroy(m_hAviWnd);//先释放窗口m_hAviWnd=MCIWndCreate(m_hWnd,NULL,16MCIWNDF_SHOWMODE|MCIWNDF_NOTIFYMODE,flDlg.GetPathName());//创建MCI窗口MCIWndPlay(m_hAviWnd);//播放文件}}//此时已可以播放在调用MCIWndCreate函数前,如果之前已经创建了一个视频窗口,则首先需要调用MCIWndDestroy函数释放视频窗口。在对话框关闭时释放MCI窗口。voidCPlayAviDlg::OnCancel(){MCIWndDestroy(m_hAviWnd);//释放MCI窗口CDialog::OnCancel();}向对话框中添加OnNotifyMode消息方法,当设备的模式发生改变时调用该方法。(手动添加)LRESULTCPlayAviDlg::OnNotifyMode(WPARAMwparam,LPARAMlparam){longcode=(long)lparam;//获取通知代码if(code==MCI_MODE_STOP)//判断avi文件是否播放完毕{MCIWndClose(m_hAviWnd);//关闭MCI窗口}return0;}在对话框的消息映射部分添加消息映射宏。ON_MESSAGE(MCIWNDM_NOTIFYMODE,OnNotifyMode)17三、设计方法及步骤1、主对话框首先启动VS2008创建一个基于对话框的应用程序,然后在资源中添加四个菜单栏,并将住对话框与主对话框连接起来,在菜单栏里添加文字处理、简单绘图、图像处理、音频视频播放,帮助五个菜单项。接着添加四个对话框,标题分别改为文字处理、简单绘图、图像处理、音频视频播放,并将其与对应的菜单项连接起来。然后将给四个对话框添加对话框类,给主菜单的四个子菜单添加消息响应函数,并调用对应的对话框,将四个子对话框设为无模式对话框,使点击主菜单的四个子菜单弹出对应的对话框。对话框的ID号及对应的菜单栏如下:对话框的ID号及对应的菜单栏如下:1.1增加背景图片:首先进入资源视图,添加一个位图资源如下图所示,点击导入;然后给C综合3Dlg类添加消息映射函数BOOLCWordDlg::OnEraseBkgnd(CDC*pDC),添加以下代码以实现根据窗口大小按比例显示添加的背景图片。ID标题MENU的IDIDD_DIALOG1文字处理IDR_32771IDD_DIALOG2简单绘图IDR_32772IDD_DIALOG3图像处理IDR_32773IDD_DIALOG4音频视频播放IDR_32774帮助18代码如下:BOOLCWordDlg::OnEraseBkgnd(CDC*pDC){//TODO:
本文标题:多媒体大作业
链接地址:https://www.777doc.com/doc-1473669 .html