资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载多媒体编程基础课程综合作业说明书地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容南京工程学院多媒体编程基础课程综合作业说明书题目多媒体处理综合应用设计班级学生姓名刘土豪学号 20210032013 年 06 月 07 日一、程序功能与设计思路设计目标与具有的功能:必须含有文字处理、绘图、图像、音频视频四部分内容各3种以上功能,界面及应用方法自己根据软件的特色综合考虑,每位同学必须自己设计一个动画标志,放在【帮助】对话框中,或者窗口界面上设计思路:1)图形处理:➢可以选择直线,矩形,椭圆,涂鸦进行绘画➢可以选择线的形状:实线,虚线,点线➢可以改变线条的颜色➢可以改变线条的宽度➢可以进行多边形填充颜色并可以改变颜色2)图片处理:➢可以打开BMP格式的图片➢可以进行锐化,浮雕,反色等图片处理效果➢可以显示鼠标在图片上坐标处的颜色值和颜色3)文字处理:➢实现至少少三种文字特效,比如:文字渐变,旋转体,3D,文字倾斜,下划线,空心字等4)音乐播放器:➢可以打开mp3,wma,wvi格式的歌曲➢可以控制音乐的播放、暂停、停止➢可以指定播放当前音乐的上一个或下一个音乐➢在列表中随意选择要播放的音乐➢在播放时,可以获取并显示当前播放音乐的信息➢可以调节音乐的音量5)视频播放器:➢可以打开MP3,WMA,WMV,AVI,RM,RMVB,FLV,MP4等格式➢在列表中随意选择要播放的媒体文件➢控制媒体文件的播放、暂停、停止、快进、快退➢指定播放当前文件的上一个或下一个媒体文件➢在播放时,可以获取并显示当前播放媒体的文件信息➢播放模式可以进行进行选择➢可以对播放列表或列表中的选项进行删除操作二、相关原理知识介绍(1)图形处理:画笔和画刷是绘图中最基本的元素1.画笔(Pen):用于在设备环境中绘制直线,曲线和多边形边框。
创建画笔:(1)CPen();(2)CPen(int nPenStyle, int nWidth, COLORREF crColor);nPenStyle:画笔的样式PS_SOLID 创建一个实线画笔,PS_DASH 创建一个虚线画笔,PS_DOT 创建一个点线画笔nWidth:画笔的宽度crColor:画笔的颜色(颜色用RGB值来描述)2.画刷(CBrush):常用于填充个区域诸如多边形,椭圆和路径等图形内部区域创建画刷:(1)CreateSolidBrush 用指定的颜色初始化画刷(2)CreateHatchBrush 用指定的阴影线初始化画刷。
(3)CreateBrushIndirect用结构LOGBRUSH中指定的风格、颜色和模式初始化画刷。
3.画直线:LineTo(int x,int y)画椭圆:Ellipse(int x1,int y1, int x2,int y2)画矩形:Rectangle(int x1,int y1,int x2,int y2)//x1,y1为边界矩形左上角的坐标,x2,y2为边界矩形右下角的坐标(2)图片处理:BitBlt,用于从源设备中复制位图到目标设备中,BOOL BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,HDC hdcSrc,intnXSrc,int nYSrc,DWORD dwRop)hdcDest:指向目标设备环境的句柄。
nXDest:指定目标矩形区域左上角的X轴逻辑坐标。
nYDest:指定目标矩形区域左上角的Y轴逻辑坐标。
nWidth:指定源和目标矩形区域的逻辑宽度。
nHeight:指定源和目标矩形区域的逻辑高度。
hdcSrc:指向源设备环境的句柄。
nXSrc:指定源矩形区域左上角的X轴逻辑坐标。
nYSrc:指定源矩形区域左上角的Y轴逻辑坐标。
dwRop:指定光栅操作代码。
这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
(3)文字处理:输出文字T extout():用当前字体在指定位置处写一个字符串TextOut(int x,int y,Cstring string):文本起点的x坐标和y坐标以及要绘制的字符串创建字体LOGFONT{ }结构(4) 音频播放器:使用VC ++6.0强大的MFC 、AppWizard 、Class Wizard 和其中的多种控件可以很方便地建立各种应用程序。
同时想要实现更高级更复杂的功能,也可以借助ActiveX 控件资源,用这些现有的控件资源,可以省去自己编程的复杂过程,从而实现更高级的功能。
本次课程设计要使用VC ++6.0自带的一个ActiveX 控件——Windows Media Player 控件,建立自己的多媒体播放器三、 界面设计和功能实现1. 主界面设计结构框架图:2. 打开VC 6.0,新建MFC 工程,基于对话框,名称为多媒体课设3.向主窗口拖一个Tab控件,并调整大小使之占据2/3主窗口大小,并为Tab添加类向导,添加IDC_TAB1的变量:m_tab完成后在“多媒体课设Dlg.cpp”中的OnInitDialog添加如下代码:// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herem_tab.InsertItem(0,"图形处理");m_tab.InsertItem(1,"图片处理");m_tab.InsertItem(2,"文字处理");m_tab.InsertItem(3,"音乐播放");m_tab.InsertItem(4,"音频播放");RECT rc;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); return TRUE; // return TRUE unless you set the focus to a control在添加类向导OnSelchangeTab1()中添加代码:void CMyDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereCRect rc;m_tab.GetClientRect(&rc);switch(m_tab.GetCurSel()){case 0: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;case 1: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;case 2: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;case 3: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;case 4: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_HIDEWINDOW);m_movie.SetWindowPos(NULL,5,20,rc.right,rc.bottom,SWP_SHOWWINDOW);break;}*pResult = 0;}4.本作业分为5个部分:图形处理,图片处理,文字处理,音乐播放,音频播放(1)分别建立5个资源:选择菜单栏的“插入”,选择窗体,窗体名称分别为:DRAW,Picture,Word,MUSIC,MOVIE并将窗体的样式改为如下:(2)分别为5个窗体创建变量名称:在“多媒课设Dlg.h”中添加变量:另外将5个部分的头文件全部加到“多媒体课设Dlg.h”中,才能调用哦(3)插入背景图片:菜单栏选择“插入”,选择“资源”,选择“Bitmap”,点击“引入”,选择BMP格式的图片名称为IDB_BITMAP4,在OnPaint()添加如下代码:else{// CDialog::OnPaint();CPaintDC dc(this);CRect rect;GetClientRect(&rect);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBackground;bmpBackground.LoadBitmap(IDB_BITMAP4);BITMAP bitmap;bmpBackground.GetBitmap(&bitmap);CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight ,SRCCOPY);}二.各个板块设计:(1)图形处理:图形处理设计框架图:设计如图:。