1南京工程学院多媒体编程基础课程综合作业说明书题目多媒体处理综合应用设计班级学生姓名刘土豪学号20210032013年06月07日2一、程序功能与设计思路设计目标与具有的功能:必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上设计思路:1)图形处理:可以选择直线,矩形,椭圆,涂鸦进行绘画可以选择线的形状:实线,虚线,点线可以改变线条的颜色可以改变线条的宽度可以进行多边形填充颜色并可以改变颜色2)图片处理:可以打开BMP格式的图片可以进行锐化,浮雕,反色等图片处理效果可以显示鼠标在图片上坐标处的颜色值和颜色3)文字处理:实现至少少三种文字特效,比如:文字渐变,旋转体,3D,文字倾斜,下划线,空心字等4)音乐播放器:可以打开mp3,wma,wvi格式的歌曲可以控制音乐的播放、暂停、停止可以指定播放当前音乐的上一个或下一个音乐在列表中随意选择要播放的音乐在播放时,可以获取并显示当前播放音乐的信息可以调节音乐的音量5)视频播放器:可以打开MP3,WMA,WMV,AVI,RM,RMVB,FLV,MP4等格式3在列表中随意选择要播放的媒体文件控制媒体文件的播放、暂停、停止、快进、快退指定播放当前文件的上一个或下一个媒体文件在播放时,可以获取并显示当前播放媒体的文件信息播放模式可以进行进行选择可以对播放列表或列表中的选项进行删除操作二、相关原理知识介绍(1)图形处理:画笔和画刷是绘图中最基本的元素1.画笔(Pen):用于在设备环境中绘制直线,曲线和多边形边框。创建画笔:(1)CPen();(2)CPen(intnPenStyle,intnWidth,COLORREFcrColor);nPenStyle:画笔的样式PS_SOLID创建一个实线画笔,PS_DASH创建一个虚线画笔,PS_DOT创建一个点线画笔nWidth:画笔的宽度crColor:画笔的颜色(颜色用RGB值来描述)2.画刷(CBrush):常用于填充个区域诸如多边形,椭圆和路径等图形内部区域创建画刷:(1)CreateSolidBrush用指定的颜色初始化画刷(2)CreateHatchBrush用指定的阴影线初始化画刷。(3)CreateBrushIndirect用结构LOGBRUSH中指定的风格、颜色和模式初始化画刷。3.画直线:LineTo(intx,inty)画椭圆:Ellipse(intx1,inty1,intx2,inty2)画矩形:Rectangle(intx1,inty1,intx2,inty2)//x1,y1为边界矩形左上角的坐标,x2,y2为边界矩形右下角的坐标4(2)图片处理:BitBlt,用于从源设备中复制位图到目标设备中,BOOLBitBlt(HDChdcDest,intnXDest,intnYDest,intnWidth,intnHeight,HDChdcSrc,intnXSrc,intnYSrc,DWORDdwRop)hdcDest:指向目标设备环境的句柄。nXDest:指定目标矩形区域左上角的X轴逻辑坐标。nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。nWidth:指定源和目标矩形区域的逻辑宽度。nHeight:指定源和目标矩形区域的逻辑高度。hdcSrc:指向源设备环境的句柄。nXSrc:指定源矩形区域左上角的X轴逻辑坐标。nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。(3)文字处理:输出文字Textout():用当前字体在指定位置处写一个字符串TextOut(intx,inty,Cstringstring):文本起点的x坐标和y坐标以及要绘制的字符串创建字体LOGFONT{}结构(4)音频播放器:使用VC++6.0强大的MFC、AppWizard、ClassWizard和其中的多种控件可以很方便地建立各种应用程序。同时想要实现更高级更复杂的功能,也可以借助ActiveX控件资源,用这些现有的控件资源,可以省去自己编程的复杂过程,从而实现更高级的功能。本次课程设计要使用VC++6.0自带的一个ActiveX控件——WindowsMediaPlayer控件,建立自己的多媒体播放器5三、界面设计和功能实现1.主界面设计结构框架图:2.打开VC6.0,新建MFC工程,基于对话框,名称为多媒体课设主界面图形处理图片处理文字效果音乐播放器音频播放器63.向主窗口拖一个Tab控件,并调整大小使之占据2/3主窗口大小,并为Tab添加类向导,添加IDC_TAB1的变量:m_tab7完成后在“多媒体课设Dlg.cpp”中的OnInitDialog添加如下代码://Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:Addextrainitializationherem_tab.InsertItem(0,图形处理);m_tab.InsertItem(1,图片处理);m_tab.InsertItem(2,文字处理);m_tab.InsertItem(3,音乐播放);m_tab.InsertItem(4,音频播放);RECTrc;m_tab.GetClientRect(&rc);m_draw.Create(IDD_DRAW_DIALOG,&m_tab);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);m_picture.Create(IDD_PICTURE_DIALOG,&m_tab);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.Create(IDD_MUSIC_DIALOG,&m_tab);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_movie.Create(IDD_MOVIE_DIALOG,&m_tab);m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.Create(IDD_WORD_DIALOG,&m_tab);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol8在添加类向导OnSelchangeTab1()中添加代码:voidCMyDlg::OnSelchangeTab1(NMHDR*pNMHDR,LRESULT*pResult){//TODO:AddyourcontrolnotificationhandlercodehereCRectrc;m_tab.GetClientRect(&rc);switch(m_tab.GetCurSel()){case0:m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case1:m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case2:m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case3:m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;case4:m_music.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_word.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);9m_picture.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_draw.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_HIDEWINDOW);m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;}*pResult=0;}4.本作业分为5个部分:图形处理,图片处理,文字处理,音乐播放,音频播放(1)分别建立5个资源:选择菜单栏的“插入”,选择窗体,窗体名称分别为:DRAW,Picture,Word,