欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    多媒体大作业.docx

    • 资源ID:2019131       资源大小:909.49KB        全文页数:46页
    • 资源格式: DOCX        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    多媒体大作业.docx

    1 南京工程学院 多媒体编程基础课程多媒体编程基础课程 综合作业说明书综合作业说明书 题题 目目 多媒体综合设计多媒体综合设计 班班 级级 K 软件测试 101 学学 生生 姓姓 名名 贺贺 稳稳 学学 号号 240101825 240101825 2012013 3 年年 6 6 月月 2222 日日 2 一一程序功能与设计思路程序功能与设计思路 (必须含有文字处理文字处理、绘图绘图、图像图像、音频视频音频视频四部分内容各 3 种以上功能,界面及应用方法自己根据软件的特色综合考虑, 每位同学必须自己设计一个动画标动画标志志,放在【帮助】对话框中,或者窗口界面上) 1 1、主界面主界面 1.1 主界面实现功能说明如下: 菜单项包括文字处理、绘图、图像、音频视频,帮助,点击进入各个功能界面 动画显示小蛇吐信 1.2 界面效果显示: 3 1.3 主界面设计思路: 首先创建一个基于对话框的对话框的 MFC 应用程序, 然后在资源里添加五个菜单栏和四个对话框并将其对应连接起来,在主对话框菜单栏中添加四个菜单选项与四个子对话框链接,以实现点击菜单项跳出对应的对话框。 其功能结构如下: 主界面 文字处理 绘图 帮助 音频视频播放 图像处理 4 2 2、文字处理文字处理 2.1 文字实现功能说明如下: 菜单项包括文字渐变、文字旋转、颜色背景颜色显示、文字镂空,点击菜单项将显示各个功能。 2.2 界面效果显示: 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 音频视频功能实现: 从本地磁盘添加音频视频文件 双击播放音频视频文件 点击播放按钮播放文件 点击上一个、下一个选择当前文件的上一个、下一个文件 5.2 功能界面显示 11 5.3 音频视频播放功能结构图: 二二相关原理知识介绍相关原理知识介绍 1输出指定字体输出指定字体 定义系统以外的字体,可以调用函数定义系统以外的字体,可以调用函数 GreateFont 自行创建自行创建 音频视频播放音频视频播放 添加文件添加文件 控制控制 播放播放 上一个上一个 下一个下一个 12 HFont=CreateFont (int nHeight, /字体高度,0 采用系统缺省值,使用逻辑单位 int nWidth, /字体宽度,取 0 则由系统根据高宽比取最佳值 int nEscapement, /每行文字相对于页底的角度,单位为 0.1 度 int nOrienation, /每个文字相对于页底的角度,单位为 0.1 度 DWORD nWeight, /字体粗细度,范围为 01000 DWORD Dwltalic, /如果要求字体倾斜,则取非零 DWORD dwUnderline,/如果要求下划线,则取非零 DWORD dwStrikeout, /如果要求中划线,则取非零 DWORD dwCharset, /字体所属字符集 DWORD dwOutputPrecision,/输出精度,一般取缺省值 OUT_DEFAULT_PRECIS DWORD dwClipPrecision, /剪裁精度,常取缺省值 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 绘图的基本方法 实现简单图形的绘制,绘图功能中,有绘制直线、矩形、椭圆、涂鸦等。用到的方法如下: 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.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 3 图像图像处理处理的基本方法的基本方法 显示图像的方法并不复杂,图像已经绘制好保存在文件中,需要做的工作就是有效加载图像文件并让它显示出来,这里我们讨论几种最常用的方法。 LoadImageLoadImage 加载图像加载图像 该函数装载图标,光标,或位图。 函数原型:HANDLE LoadImage( HINSTANCE hinst, /包含图像的实例句柄,可以为 NULL LPCTSTR lpszName,/图像的资源名称,本机加载,完整路径 UINT uType, /图像类型 int cxDesired, /加载的位图,参数为 0 int cyDesired, /加载的位图,参数为 0 UINT fuLoad );/返回加载的图像句柄 图像文件只支持 bmp 类型的。 获取鼠标位置的颜色值 VC 提供了三个宏,用于获取某一颜色的红、绿、蓝三基色。 1)GetRValue 宏 该宏用于获取指定颜色的红颜色值 2)GetGValue 宏 该宏用于获取指定颜色的绿颜色值 3)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 point ) 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 mciSendCommand(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 文件、关闭波形设备。 向视图类中添加一个 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 comment (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 = MCIWndCreate(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(); 向对话框中添加 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,OnNotifyMode) 17 三、三、设计方法及步骤设计方法及步骤 1、主对话框 首先启动 VS2008 创建一个基于对话框的应用程序,然后在资源中添加四个菜单栏,并将住对话框与主对话框连接起来,在菜单栏里添加文字处理、简单绘图、图像处理、音频视频播放,帮助五个菜单项。接着添加四个对话框,标题分别改为文字处理、简单绘图、图像处理、音频视频播放,并将其与对应的菜单项连接起来。然后将给四个对话框添加对话框类,给主菜单的四个子菜单添加消息响应函数,并调用对应的对话框,将四个子对话框设为无模式对话框,使点击主菜单的四个子菜单弹出对应的对话框。 对话框的 ID 号及对应的菜单栏如下: 对话框的 ID 号及对应的菜单栏如下: 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 帮助 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; GetClientRect(&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 DrawDlg.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: 在此?加命令?处鋦理?程序代洙?码? / TODO: 在此?加命令?处鋦理?程序代洙?码? 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 *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: 在此添加消息处理程序代码和/或调用默认值 CBitmap 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); pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY); return TRUE; 2 2 按钮事件响应 然后添加四个按钮,修改其对应的 ID 值,如下: 然后给各个菜单项添加对应的消息映射函数,代码如下: void CWordDlg:OnBnClickedButton1() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? m=3; Invalidate(); void CWordDlg:OnBnClickedButton2() 名称名称 ID 文字渐变 IDC_BUTTONIDC_BUTTON1 1 文字镂空 IDC_BUTTONIDC_BUTTON2 2 颜色旋转 IDC_BUTTONIDC_BUTTON3 3 文字背景颜色 IDC_BUTTONIDC_BUTTON4 4 22 / TODO: 在此?加控?件t通?知a处鋦理?程序代洙?码? m=4; Invalidate(); void CWordDlg:OnBnClickedButton3() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? m=0; Invalidate(); void CWordDlg:OnBnClickedButton4() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? m=2; Invalidate(); void CWordDlg:OnPaint() CPaintDC dc(this); / device context for painting / TODO: 在此?加消?息处鋦理?程序代洙?码? / 不?为a绘?图?消?息调獭?用? CDialogEx:OnPaint() CDC *pDC=GetDC(); switch(m) case 0: CFont mFont; VERIFY(mFont.CreateFont(45,30,0,0,FW_HEAVY,TRUE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,_T(宋?体?); CPen pen(PS_SOLID,2,RGB(255,0,0); pDC-SelectObject(&pen); pDC-BeginPath(); 23 CFont *pOldFont=pDC-SelectObject(&mFont); pDC-TextOut(100,100,_T(南?京?工程学院o); pDC-EndPath(); pDC-StrokePath(); mFont.DeleteObject(); pDC-SelectObject(pOldFont); break; case 1: /CString str10= _T(多),_T(多),_T(多),_T(多),_T(多),_T(多),_T(多),_T(多); pDC-SelectStockObject(NULL_BRUSH); pDC-SetBkMode(TRANSPARENT); CFont font; CBrush brush; CPen pen; if(bdraw) for(int i=0;iSelectObject(&font); pDC-SetTextColor(coli); pDC-TextOut(posxi,100,_T(南?京?工程学院o); pDC-SelectObject(oldfont); font.Detach(); break; case 2: SetTimer(0,300,NULL); CFont font; font.CreatePointFont(500,_T(黑体?),pDC); CFont* pOldFont=pDC-SelectObject(&font); /创洹?建输?出?字?符?串?. CString str (_T (南?京?工程学院o!); 24 /设?置?字?体?颜?色? pDC-SetTextColor (RGB(m_nRed,m_nGreen,m_nBlue); /输?出?字?体? pDC-TextOut(50,100,str); pDC-SelectObject(pOldFont); ReleaseDC(pDC); break; case 3: CString sTemp; sTemp=综?合?作痢?业唉?说明书酣?,?请?不?要癮找我要癮!?谢?谢?!?; CWnd* pWnd1; pWnd1 = GetDlgItem(IDR_MENU2);/返?回?控?件t句?柄括? CClientDC dc1(pWnd1); dc1.TextOutW(50,150,sTemp);/在static控?件t上?输?出?文?字? CClientDC dc2(this); dc2.SetBkColor(RGB(255,0,255); dc2.SetTextColor(RGB(0,0,255); dc2.TextOutW(150,150,sTemp); break; case 4: CDC*pDC=GetDC(); CFont m_font; pDC-SetBkMode(TRANSPARENT); CRect m_rect; GetClientRect(m_rect); pDC-FillRect(m_rect,NULL); pDC-SetViewportOrg(m_rect.Width()/2,m_rect.Height()/2); for(int i=1;iSelectObject(&m_font); pDC-SetTextColor(RGB(255-i,i*255,i+50); pDC-TextOut(0,0,_T(abcdefg); m_font.DeleteObject(); break; void CWordDlg:OnTimer(UINT_PTR nIDEvent) / TODO: 在此?加消?息处鋦理?程序代洙?码?和/或调獭?用?默?认?值 if(m=2) if(m_nRed=25) m_nGreen -= 20; else if(m_nRed = 0) m_nGreen = 255; else m_nGreen = 0; if(m_nBlue=235) m_nBlue += 20; else if(m_nBlue = 255) m_nBlue = 0; else m_nBlue = 255; Invalidate();/重?画-文?字? /*else if(m=1) KillTimer(1); Alpha=Alpha-I_Alpha; for(int i=0;iStretchBlt(r.left,r.top,r.Width(),r.Height(),&memDC,0,0, BitInfo.bmWidth,BitInfo.bmHeight,SRCCOPY); / pDC-BitBlt(0,0,x,y,&memDC,0,0,SRCCOPY); /向窗洹?口中D绘?制?位?图? bmp.Detach(); /分?离?位?图?句?柄括? memDC.DeleteDC(); /释酣?放?设?备?上?下?文?对?象 void CImagDlg:OnBnClickedButton2() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? CDC * m_dc; CRect m_rect; m_picture.GetClientRect(m_rect); m_dc = m_picture.GetDC(); int r1,g1,b1,r2,g2,b2; for (int i = 1;im_rect.right+1;i+) for (int j = 1; jGetPixel(i,j); COLORREF nextcolor = m_dc-GetPixel(i-1,j-1); r1 = (color & 0 xFF); g1 = (int)(color & 65280) / 256; b1 = (int)(color & 0 xFF0000) / 65536; r2 = (nextcolor & 0 xFF); g2 = (int)(nextcolor & 62580) / 256; 30 b2 = (int)(nextcolor & 0 xFF0000) / 65536; r1+= (r1 - r2) /2; g1 += (g1 - g2) / 2; b1 += (b1 - b2) / 2; if ( r1 255) r1 = 255; if ( r1 255) b1 = 255; if (b1 255) g1 = 255; if ( g1 SetPixel(i,j,RGB(r1,g1,b1); void CImagDlg:OnBnClickedButton3() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? CDC * m_dc; CRect m_rect; m_picture.GetClientRect(m_rect); m_dc = m_picture.GetDC(); int r1,g1,b1,r2,g2,b2; for (int i = 1;im_rect.right+1;i+) for (int j = 1; jGetPixel(i,j); double m_gray ; r1 = GetRValue(color); g1 = GetGValue(color); b1 = GetBValue(color); m_gray = (0.38*r1+0.49*g1+0.1*b1); color = RGB(m_gray,m_gray,m_gray); m_dc-SetPixel(i,j,color); 31 void CImagDlg:OnBnClickedButton4() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? CDC* pDC = m_picture.GetDC(); CRect m_rect; m_picture.GetClientRect(m_rect); BYTE r,g,b; for (int i=1; im_rect.Width();i+) for (int j=1;jGetPixel(i,j); r = GetRValue(clr); g = GetGValue(clr); b = GetBValue(clr); r = abs(255-r); g = abs(255-g); b = abs(255-b); pDC-SetPixel(i,j,RGB(r,g,b); /*CDC * m_dc; CRect m_rect; m_HBitmap.GetClientRect(m_rect); m_dc =m_HBitmap.GetDC(); int r1,g1,b1,r2,g2,b2; for (int i = 1;im_rect.right+1;i+) for (int j = 1; jGetPixel(i,j); COLORREF nextcolor = m_dc-GetPixel(i+1,j+1); double m_gray ; r1 = GetRValue(color); g1 = GetGValue(color); b1 = GetRValue(color); 32 r2 =GetRValue(nextcolor); g2 = GetGValue(nextcolor); b2 = GetBValue(nextcolor); r1=r1-r2+128; g1=g1-g2+128; b1=b1-b2+128; if(r1255) r1 = 255; else if(r1255) g1 = 255; else if(g1255) b1 = 255; else if(b1SetPixel(i,j,color); */ void CImagDlg:OnBnClickedButton5() / TODO: 在此?加控?件t?知a处鋦理?程序代洙?码? CDC * m_dc; CRect m_rect; m_picture.GetClientRect(m_rect); m_dc = m_picture.GetDC(); int r1,g1,b1,r2,g2,b2; for (int i = 1;im_rect.right+1;i+) for (int j = 1; jGetPixel(i,j); COLORREF nextcolor = m_dc-GetPixel(i+1,j+1); 33 double m_gray ; r1 = GetRValue(color); g1 = GetGValue(color); b1 = GetRValue(color); r2 =GetRValue(nextcolor); g2 = GetGValue(nextcolor); b2 = GetBValue(nextcolor); r1=r1-r2+128; g1=g1-g2+128; b1=b1-b2+128; if(r1255) r1 = 255; else if(r1255) g1 = 255; else if(g1255) b1 = 255; else if(b1SetPixel(i,j,color); 5.5.音频视频音频视频 5.1.增加背景图片(同文字处理) 5.2 音频视频播放 首先在音频视频对话框中添加一个 WindowMediaPlay 控件和一个 ListBox 控件, 分别用来实现文件列表的添加显示和音频视频媒体的播放。然后添加四个按钮,Caption 值分别设为:添加、播放、下一个和上一个。 其对应的 ID 值和消息响应函数名如下: Caption ID 消息响应函数 添加 IDC_OPEN CWmpDlg:OnBnClickedOpen() 34 播放 IDC_PLAY CWmpDlg:OnBnClickedPlay() 下一个 IDC_NEXT CWmpDlg:OnBnClickedNext() 上一个 IDC_LAST CWmpDlg:OnBnClickedLast() 分别给 ListBox 和 WindowsMediaPlay 添加一个变量,如下图所示: 系统将自动生成一个 COcx1 类 在源文件 COcx1.cpp 文件中添加如下代码: #include ocx1.h IMPLEMENT_DYNCREATE(COcx1, CWnd) 然后在对话框源文件的对应消息响应函数中添加如下代码, 以实现从本地添加一个媒体文件,并在ListBox中列表显示,双击则播放文件,单击选中点击播放按钮则播放媒体文件, 点击上一个或下一个则选中当前媒体文件的上一个或下一文 35 件。 对应代码如下: void CWmpDlg:OnBnClickedOpen() / TODO: 在此添加控件通知处理程序代码 CFileDialog flDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT ,所有文件|*.*|,this); if (flDlg.DoModal()=IDOK) /判断用户是否单击OK按钮 POSITION pos=flDlg.GetStartPosition(); while(pos!=NULL) m_List.AddString(flDlg.GetNextPathName(pos); void CWmpDlg:OnLbnDblclkList1() / TODO: 在此添加控件通知处理程序代码 int selIndex = m_List.GetCurSel(); /获取当前选择的列表项索引 if (selIndex != LB_ERR) /判断是否有项目被选中 /定义一个字符串对象 CString str; /根据索引获取当前项目的字符串 m_List.GetText(selIndex,str); m_Avi.put_URL(str); void CWmpDlg:OnBnClickedPlay() / TODO: 在此添加控件通知处理程序代码 int selIndex = m_List.GetCurSel(); /获取当前选择的列表项索引 if (selIndex != LB_ERR) /判断是否有项目被选中 /定义一个字符串对象 CString str; /根据索引获取当前项目的字符串 m_List.GetText(selIndex,str); 36 m_Avi.put_URL(str); void CWmpDlg:OnBnClickedLast() / TODO: 在此添加控件通知处理程序代码 int selIndex = m_List.GetCurSel(); /获取当前选择的列表项索引 if (selIndex != LB_ERR) /判断是否有项目被选中 /定义一个字符串对象 CString str; /根据索引获取当前项目的字符串 int index=selIndex-1; if(index=-1) index=m_List.GetCount()-1; m_List.GetText(index,str); m_List.SetCurSel(index); / m_Avi.put_URL(str); void CWmpDlg:OnBnClickedNest() / TODO: 在此添加控件通知处理程序代码 int selIndex = m_List.GetCurSel(); /获取当前选择的列表项索引 if (selIndex != LB_ERR) /判断是否有项目被选中 /定义一个字符串对象 CString str; /根

    注意事项

    本文(多媒体大作业.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开