多媒体大作业.docx
《多媒体大作业.docx》由会员分享,可在线阅读,更多相关《多媒体大作业.docx(46页珍藏版)》请在三一办公上搜索。
1、 1 南京工程学院 多媒体编程基础课程多媒体编程基础课程 综合作业说明书综合作业说明书 题题 目目 多媒体综合设计多媒体综合设计 班班 级级 K 软件测试 101 学学 生生 姓姓 名名 贺贺 稳稳 学学 号号 240101825 240101825 2012013 3 年年 6 6 月月 2222 日日 2 一一程序功能与设计思路程序功能与设计思路 (必须含有文字处理文字处理、绘图绘图、图像图像、音频视频音频视频四部分内容各 3 种以上功能,界面及应用方法自己根据软件的特色综合考虑, 每位同学必须自己设计一个动画标动画标志志,放在【帮助】对话框中,或者窗口界面上) 1 1、主界面主界面 1.
2、1 主界面实现功能说明如下: 菜单项包括文字处理、绘图、图像、音频视频,帮助,点击进入各个功能界面 动画显示小蛇吐信 1.2 界面效果显示: 3 1.3 主界面设计思路: 首先创建一个基于对话框的对话框的 MFC 应用程序, 然后在资源里添加五个菜单栏和四个对话框并将其对应连接起来,在主对话框菜单栏中添加四个菜单选项与四个子对话框链接,以实现点击菜单项跳出对应的对话框。 其功能结构如下: 主界面 文字处理 绘图 帮助 音频视频播放 图像处理 4 2 2、文字处理文字处理 2.1 文字实现功能说明如下: 菜单项包括文字渐变、文字旋转、颜色背景颜色显示、文字镂空,点击菜单项将显示各个功能。 2.2
3、 界面效果显示: 5 6 2.3 文字处理功能结构图: 3 3、绘图工具、绘图工具 3.1 绘图工具实现功能如下: 画圆 画椭圆 画矩形 文字处理 文字旋转 倾斜文字 颜色渐变 镂空文字 7 3.2 功能界面效果显示 8 4 4、图像处理图像处理 4.1 图像处理实现功能如下: 从本地磁盘打开文件 图片去色 浮雕效果 颜色拾取 锐化效果 颜色取反 4.2 功能界面效果显示 9 .3 图像处理功能结构图: 图片处理 打开 锐化 镂空 取反 去色 10 5 5、音频视频播放音频视频播放 5.1 音频视频功能实现: 从本地磁盘添加音频视频文件 双击播放音频视频文件 点击播放按钮播放文件 点击上一个、
4、下一个选择当前文件的上一个、下一个文件 5.2 功能界面显示 11 5.3 音频视频播放功能结构图: 二二相关原理知识介绍相关原理知识介绍 1输出指定字体输出指定字体 定义系统以外的字体,可以调用函数定义系统以外的字体,可以调用函数 GreateFont 自行创建自行创建 音频视频播放音频视频播放 添加文件添加文件 控制控制 播放播放 上一个上一个 下一个下一个 12 HFont=CreateFont (int nHeight, /字体高度,0 采用系统缺省值,使用逻辑单位 int nWidth, /字体宽度,取 0 则由系统根据高宽比取最佳值 int nEscapement, /每行文字相对
5、于页底的角度,单位为 0.1 度 int nOrienation, /每个文字相对于页底的角度,单位为 0.1 度 DWORD nWeight, /字体粗细度,范围为 01000 DWORD Dwltalic, /如果要求字体倾斜,则取非零 DWORD dwUnderline,/如果要求下划线,则取非零 DWORD dwStrikeout, /如果要求中划线,则取非零 DWORD dwCharset, /字体所属字符集 DWORD dwOutputPrecision,/输出精度,一般取缺省值 OUT_DEFAULT_PRECIS DWORD dwClipPrecision, /剪裁精度,常取缺
6、省值 CLIP_DEFAULT_PRECIS DWORD dwQuality, /输出质量,一般取缺省值 DEFAULT_QUALITY DWORD dwPitchAndFamily, /字体名 ) 2.文本输出文本输出 常用的文本输出函数 TextOut 原型如下: BOOL TextOut ( HDC hdc, int X, int Y, /X, Y 为用户区中字符串的起始坐标 LPCTSTR lpstring, /lpstring 为显示的字符串 int nCount /nCount 为字符串中的字节数 ); 2 2、简单绘图工具、简单绘图工具 2.1 绘图的基本方法 实现简单图形的绘制
7、,绘图功能中,有绘制直线、矩形、椭圆、涂鸦等。用到的方法如下: CPoint MoveTo(int x,int y); /直线起点 CPoint LineTo(int x,int y); /直线终点 BOOL Rectangle(int x1,int y1,int x2,int y2); /绘制矩形 BOOL Ellipse(int x1,int y1,int x2,int y2); /绘制椭圆 涂鸦部分,以鼠标移动的轨迹画线。同样要用到 MouseMove()函数。使起点为鼠标前一个位置,终点为鼠标当前位置,以画直线的方式完成。 对于线型、线宽、颜色的设置,通过使用颜色通用对话框完成。 2.
8、2 绘图时需要用到的设备环境类介绍 设备环境类 CDC 提供了绘制和打印的全部函数。为了能让用户使用一些特殊的设备环境,CDC 还派生了 CPaintDC、CClientDC、CWindowDC 和 CMetaFileDC类。 (1)CPaintDC 比较特殊,它的构造函数和析构函数都是针对 OnPaint 进行的, 但用户一旦获得相关的 CDC 指针,就可以将它当成任何设备环境(包括屏幕、打印机)指针来使用。CPaintDC 类的构造函数会自动调用 BeginPaint,而它的析构函数则会自动调用 EndPaint。 (2)CClientDC 只能在窗口的客户区(不包括边框、标题栏、菜单栏以
9、及状 13 态栏)中进行绘图,点(0,0)通常指的是客户区的左上角。而 CWindowDC 允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。CWindowDC 和CClientDC 构造函数分别调用 GetWindowDC 和 GetDC,但它们的析构函数都是调用 ReleaseDC 函数 3 3 图像图像处理处理的基本方法的基本方法 显示图像的方法并不复杂,图像已经绘制好保存在文件中,需要做的工作就是有效加载图像文件并让它显示出来,这里我们讨论几种最常用的方法。 LoadImageLoadImage 加载图像加载图像 该函数装载图标,光标,或位图。 函数原型:HANDLE L
10、oadImage( HINSTANCE hinst, /包含图像的实例句柄,可以为 NULL LPCTSTR lpszName,/图像的资源名称,本机加载,完整路径 UINT uType, /图像类型 int cxDesired, /加载的位图,参数为 0 int cyDesired, /加载的位图,参数为 0 UINT fuLoad );/返回加载的图像句柄 图像文件只支持 bmp 类型的。 获取鼠标位置的颜色值 VC 提供了三个宏,用于获取某一颜色的红、绿、蓝三基色。 1)GetRValue 宏 该宏用于获取指定颜色的红颜色值 2)GetGValue 宏 该宏用于获取指定颜色的绿颜色值 3
11、)GetBValue 宏 该宏用于获取指定颜色的蓝颜色值 BYTE GetRValue(DWORD rgb ); rgb 标识一个颜色值。 返回值:指定颜色的红色值。 BYTE GetGValue(DWORD rgb ); rgb 标识一个颜色值。 返回值:指定颜色的绿色值。 BYTE GetBValue(WORD rgb ); 14 rgb 标识一个颜色值。 返回值:指定颜色的蓝色值。 提取颜色 GetPixel 方法 该方法用于获取某一点的颜色值。 语法: COLORREF GetPixel( int x, int y ) const; COLORREF GetPixel( POINT p
12、oint ) const; 参数: x、y、point 标识坐标点。 返回值:坐标点的颜色值。 SetPixel 方法 该方法用于设置某一点的颜色值。 语法: COLORREF SetPixel( int x, int y, COLORREF crColor ); COLORREF SetPixel( POINT point, COLORREF crColor ); 参数 x、y、point 标识坐标点。 crColor 标识设置的颜色值。 返回值:坐标点实际显示的颜色值。 4 4 音频视频音频视频 播放 Wav 文件 用 mciSendCommand 函数 语法如下: MCIERROR mc
13、iSendCommand(MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD_PTR dwParam); 参数说明: IDDevice:表示接收命令消息的 MCI 设备标识符。 uMsg:表示命令消息, 使用 mciSendCommand 函数,需要 15 引用 Mmsystem.h 头文 件,链接 Winmm.lib 库文件。 #include Mmsystem.h /应用头文件 #pragma comment (lib,“Winmm.lib”) /引用库文 定义一个 CPlayWave 类,用于打开波形设备、 播放 wav 文件
14、、关闭波形设备。 向视图类中添加一个 CPlayWave 成员。 CPlayWave wave; 向视图类中添加一个按钮,处理按钮的单击事件。 /定义一个 CPlayWave 成员 void CPlayWaveView:OnBtPlay() wave.Stop(); /停止播放 wave.Play(m_hWnd, Windows XP 登录音.wav); /开始播放 wav文件 使用 MCIWndCreate 函数播放 avi 文件 在 PlayAvi Dlg.app 中引用 vfw.h 头文件并链接 Vfw32.lib 库文件。 #include Vfw.h /引用头文件 #pragma c
15、omment (lib,“Vfw32.lib”) /链接库文件 处理“OK”按钮的单击事件,弹出文件打开对话框让用户选择一个 avi 文件,并进行播放。 void CPlayAviDlg:OnOK() CFileDialog flDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY| OFN_OVERWRITEPROMPT, AVI 文件|*.avi|,this); /定义文件打开对话框 if (flDlg.DoModal()=IDOK) /判断用户是否单击 OK 按钮 MCIWndDestroy(m_hAviWnd); /先释放窗口 m_hAviWnd = MCIWn
16、dCreate(m_hWnd,NULL, 16 MCIWNDF_SHOWMODE|MCIWNDF_NOTIFYMODE, flDlg.GetPathName(); /创建 MCI 窗口 MCIWndPlay(m_hAviWnd); /播放文件 /此时已可以播放 在调用 MCIWndCreate 函数前,如果之前已经创建了一个视频窗口,则首先需要调用MCIWndDestroy 函数释放视频窗口。 在对话框关闭时释放 MCI 窗口。 void CPlayAviDlg:OnCancel() MCIWndDestroy(m_hAviWnd); /释放 MCI 窗口 CDialog:OnCancel()
17、; 向对话框中添加 OnNotifyMode 消息方法, 当设备的模式发生改变时调用该方法。 (手动添加) LRESULT CPlayAviDlg:OnNotifyMode(WPARAM wparam, LPARAM lparam) long code = (long)lparam; /获取通知代码 if (code = MCI_MODE_STOP) /判断 avi 文件是否播放完毕 MCIWndClose(m_hAviWnd); /关闭 MCI 窗口 return 0; 在对话框的消息映射部分添加消息映射宏。 ON_MESSAGE(MCIWNDM_NOTIFYMODE,OnNotifyMod
18、e) 17 三、三、设计方法及步骤设计方法及步骤 1、主对话框 首先启动 VS2008 创建一个基于对话框的应用程序,然后在资源中添加四个菜单栏,并将住对话框与主对话框连接起来,在菜单栏里添加文字处理、简单绘图、图像处理、音频视频播放,帮助五个菜单项。接着添加四个对话框,标题分别改为文字处理、简单绘图、图像处理、音频视频播放,并将其与对应的菜单项连接起来。然后将给四个对话框添加对话框类,给主菜单的四个子菜单添加消息响应函数,并调用对应的对话框,将四个子对话框设为无模式对话框,使点击主菜单的四个子菜单弹出对应的对话框。 对话框的 ID 号及对应的菜单栏如下: 对话框的 ID 号及对应的菜单栏如下
19、: 1.1增加背景图片: 首先进入资源视图,添加一个位图资源如下图所示,点击导入;然后给C综合3Dlg 类添加消息映射函数BOOL CWordDlg:OnEraseBkgnd(CDC* pDC),添加以下代码以实现根据窗口大小按比例显示添加的背景图片。 ID 标题 MENU 的 ID IDD_DIALOG1IDD_DIALOG1 文字处理 IDR_32771 IDD_DIALOGIDD_DIALOG2 2 简单绘图 IDR_32772 IDD_DIALOGIDD_DIALOG3 3 图像处理 IDR_32773 IDD_DIALOGIDD_DIALOG4 4 音频视频播放 IDR_32774
20、帮助 18 代码如下: BOOL CWordDlg:OnEraseBkgnd(CDC* pDC) / TODO: 在此添加消息处理程序代码和/或调用默认值 CBitmap bitmap;/构建位图对象 bitmap.LoadBitmapA(IDB_BITMAP5);/加载位图 CDC dcCompatible;/创建于当前DC兼容的DC dcCompatible.CreateCompatibleDC(pDC);/ BITMAP bmp; bitmap.GetBitmap(&bmp); dcCompatible.SelectObject(&bitmap); CRect rect; GetClie
21、ntRect(&rect); /pDC-BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY); pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); return TRUE; 1.2连接四个对话框: 给对话框添加类:选中对话框点击右键,选择添加类,然后进入如下对话框,填入相应的类名,点击“完成” 。 19 添加代码如下: 首先添加四个对话框类的头文件 #include Draw
22、Dlg.h #include ImagDlg.h #include WmpDlg.h #include#include WordDlg.hWordDlg.h 然后给主对话框的子菜单添加对应的消息响应函数,代码如下: void C综?合?3Dlg:On32771() / TODO: 在此?加命令?处鋦理?程序代洙?码? CWordDlg *pDlg=new CWordDlg; pDlg-Create(IDD_DIALOG1); pDlg-ShowWindow(SW_NORMAL); void C综?合?3Dlg:On32772() / TODO: 在此?加命令?处鋦理?程序代洙?码? / TOD
23、O: 在此?加命令?处鋦理?程序代洙?码? DrawDlg *pDlg=new DrawDlg; 20 pDlg-Create(IDD_DIALOG2); pDlg-ShowWindow(SW_NORMAL); void C综?合?3Dlg:On32773() / TODO: 在此?加命令?处鋦理?程序代洙?码? CImagDlg *pDlg=new CImagDlg; pDlg-Create(IDD_DIALOG3); pDlg-ShowWindow(SW_NORMAL); void C综?合?3Dlg:On32774() / TODO: 在此?加命令?处鋦理?程序代洙?码? CWmpDlg
24、 *pDlg=new CWmpDlg; pDlg-Create(IDD_DIALOG4); pDlg-ShowWindow(SW_NORMAL); 2.2.文字处理文字处理 2.12.1 增加背景:增加背景: 首先进入资源视图,添加一个位图资源如下图所示,点击导入;然后给CWordDlg类添加消息映射函数BOOL CWordDlg:OnEraseBkgnd(CDC* pDC),添加以下代码以实现根据窗口大小按比例显示添加的背景图片。 代码如下: 21 BOOL CWordDlg:OnEraseBkgnd(CDC* pDC) / TODO: 在此添加消息处理程序代码和/或调用默认值 CBitma
25、p bitmap;/构建位图对象 bitmap.LoadBitmapA(IDB_BITMAP5);/加载位图 CDC dcCompatible;/创建于当前DC兼容的DC dcCompatible.CreateCompatibleDC(pDC);/ BITMAP bmp; bitmap.GetBitmap(&bmp); dcCompatible.SelectObject(&bitmap); CRect rect; GetClientRect(&rect); /pDC-BitBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,SRCCOPY)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 作业
链接地址:https://www.31ppt.com/p-2019131.html