用VC做视频播放器Word格式文档下载.docx

上传人:b****3 文档编号:8282737 上传时间:2023-05-10 格式:DOCX 页数:11 大小:19.80KB
下载 相关 举报
用VC做视频播放器Word格式文档下载.docx_第1页
第1页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第2页
第2页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第3页
第3页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第4页
第4页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第5页
第5页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第6页
第6页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第7页
第7页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第8页
第8页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第9页
第9页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第10页
第10页 / 共11页
用VC做视频播放器Word格式文档下载.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

用VC做视频播放器Word格式文档下载.docx

《用VC做视频播放器Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《用VC做视频播放器Word格式文档下载.docx(11页珍藏版)》请在冰点文库上搜索。

用VC做视频播放器Word格式文档下载.docx

5.在“文件”菜单下有一个虚方框,表示要新建的菜单项。

在“C标题”编辑框中输入:

打开(&

O),在ID编辑框中输入:

ID_FILEOPEN(当“O弹出”检查框未选中时,必须输入ID)。

另外,可根据需要在“M提示”编辑框中输入一串字符,提示该菜单选项功能。

当光标停在该菜单选项上时,提示字符串显示在应用程序主窗口的状态条中。

6.类似步骤5)、6),按下表6-1内容,建立完整的菜单。

表6-1媒体播放器的各菜单项属性

顶层菜单项

子菜单项

ID号

F)

O)

ID_FILEOPEN

关闭(&

C)

ID_FILECLOSE

具有Separator样式的菜单分隔条

退出(&

X)

ID_FILEEXIT

播放(&

P)

开始(&

S)

ID_PLAYSTART

暂停(&

ID_PLAYPAUSE

停止(&

T)

ID_PLAYSTOP

视频(&

V)

原始大小(&

ID_VIDEO1X

原始大小的2倍(&

D)

ID_VIDEO2X

音频(&

A)

调节音量(&

ID_AUDEOVOLUME

调节左右声道平衡(&

B)

ID_AUDEOBALANCE

帮助(&

H)

关于播放器(&

ID_HELPABOUT

7.给新建的菜单连接一个类

①将鼠标移至编辑状态的菜单上,单击右键,弹出快捷菜单,选择ClassWizard命令。

在显示ClassWizard窗口的同时,弹出一个AddingaClass对话框,该对话框询问是增加一个新类,还是选择一个已经存在的类进行连接。

因为我们要连接的类是与Player应用程序相关联的对话框类CPlayerDlg,此类已经存在,所以选择第二项。

②单击AddingaClass对话框中的OK按钮,显示一个SelectClass(选择类)对话框窗口,在Classlist列表中选择CPlayerDlg,单击Select按钮,确定所选项。

③单击“确定”按钮,关闭ClassWizard窗口。

现在,菜单ID_PLAYER_MENU已经和CPlayerDlg类连接起来了。

8.连接菜单和应用程序的主窗口

①在工作区中单击ResourceView选项卡,展开Dialog资源组,双击IDD_PLAYER_DIALOG。

在右边工作台中显示的IDD_PLAYER_DIALOG对话框的任何一个空白区域,单击鼠标右键,在弹出的菜单中选择Properties项,随后弹出DialogProperties对话框。

②在DialogProperties对话框中有一个“M菜单”选项。

单击“M菜单”组合框的箭头,在弹出的列表中选择IDR_MENU

9.选择File|Save命令,保存所有工作。

现在,对已存在的程序进行编译、运行

6.2.3在对话框中添加ActiveMovie控件

在对话框中单击鼠标右键,选择InsertActiveXControl命令。

在弹出的对话框中选择ActiveMovieControlObject,并按“确定”按钮。

10.为新添加的ActiveMovie控件确定ID号,为IDC_AMOVIE。

11.为IDC_AMOVIE映射一个成员变量

在ActiveMovie控件上单击右键,在弹出菜单中选择ClassWizard,在弹出的MFCClassWizard对话框中选择MemberVariables选项卡,按下AddVariable按钮,弹出对话框。

在随后弹出对话框中,按下“OK”按钮,以确定新建类:

CActiveMovie。

在弹出的AddMemberVariable对话框中确定与IDC_AMOVIE相映射的成员变量:

m_AMovie。

6.2.4完成“文件”菜单的各子菜单功能

以下的函数基本上是通过MFC的消息映射机制实现

12.实现“打开”菜单功能

①为“打开”菜单添加消息响应函数:

OnFileopen()。

②OnFileopen()函数的代码如下:

voidCTLY2412Dlg:

:

OnFileopen()

{

//TODO:

Addyourcommandhandlercodehere

//文件类型过滤

charszFileFilter[]=

"

Mp3File(*.mp3)|*.mp3|"

WmaFile(*.wma)|*.wma|"

VideoFile(*.dat)|*.dat|"

WaveFile(*.wav)|*.wav|"

AVIFile(*.avi)|*.avi|"

MovieFile(*.mov)|*.mov|"

MediaFile(*.mmm)|*.mmm|"

MidFile(*.mid;

*,rmi)|*.mid;

*.rmi|"

MPEGFile(*.mpeg)|*.mpeg|"

AllFile(*.*)|*.*||"

;

CTLY2412Dlgdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);

if(dlg.DoModal()==IDOK)

CStringPathName=dlg.GetPathName();

PathName.MakeUpper();

m_AMovie.SetFileName(PathName);

}

13.实现“关闭”菜单功能

①为“关闭”菜单添加消息响应函数:

OnFileclose()。

②OnFileclose()函数的代码如下:

OnFileclose()

m_AMovie.SetFileName("

);

14.实现“退出”菜单功能

①为“退出”菜单添加消息响应函数:

OnFileexit()。

②OnFileexit()函数的代码如下:

OnFileexit()

OnCancel();

6.2.5完成“播放”菜单的各子菜单功能

1.实现“开始”菜单功能

①为“开始”菜单添加消息响应函数:

OnPlaystart()。

②OnPlaystart()函数的代码如下:

OnPlaystart()

m_AMovie.Run();

SetTimer(0,20,NULL);

//设置定时器

2.实现“暂停”菜单功能

①为“暂停”菜单添加消息响应函数:

OnPlaypause()。

②OnPlaypause()函数的代码如下:

OnPlaypause()

m_AMovie.Pause();

3.实现“停止”菜单功能

①为“停止”菜单添加消息响应函数:

OnPlaystop()。

②OnPlaystop()函数的代码如下:

OnPlaystop()

m_AMovie.Stop();

KillTimer(0);

//关掉定时器

4.当ActiveMovie控件完成媒体文件的加载时自动播放该文件,代码如下:

OnOpenCompleteAmovie()

6.2.6完成“视频”菜单的各子菜单功能

1.实现“原始大小”菜单功能

15.编写代码完善OnInitDialog(),完整代码如下:

BOOLCTLY2412Dlg:

OnInitDialog()

CDialog:

OnInitDialog();

SetIcon(m_hIcon,TRUE);

SetIcon(m_hIcon,FALSE);

//设置ActiveMovie控件的初始文件为空

//改变窗口的大小以适应ActiveMovie控件的大小

MoveMovieWindow();

returnTRUE;

16.添加CTLY2412Dlg类的成员函数MoveMovieWindow(),实现改变对话框大小以适应ActiveMovie控件的大小,其代码如下:

MoveMovieWindow()

CRectrc1,rc2,rc3;

//得到ActiveMovie控件的大小

m_AMovie.GetWindowRect(rc1);

//保证对话框客户区的宽不小于300像素,高不小于225像素

if(rc1.Width()<

300||rc1.Height()<

225)

rc1.right=rc1.left+300;

rc1.bottom=rc1.top+225;

//获得对话框的大小

GetWindowRect(rc2);

//获得对话框客户区的大小

GetClientRect(rc3);

//改变对话框的大小以适应ActiveMovie控件的大小

MoveWindow(rc2.left,rc2.top,

rc2.Width()-rc3.Width()+rc1.Width(),

rc2.Height()-rc3.Height()+rc1.Height());

//获得ActiveMovie控件的大小

//使ActiveMovie控件在对话框的客户区居中

m_AMovie.MoveWindow((rc3.Width()-rc1.Width())/2,

(rc3.Height()-rc1.Height())/2,rc1.Width(),rc1.Height());

③为“原始大小”菜单添加消息响应函数:

OnVideo1x()。

17.OnVideo1x()函数的代码如下:

OnVideo1x()

m_AMovie.SetMovieWindowSize

(1);

⑤另外,要完成“视频”菜单的功能,还应完成下列函数的编写

//当ActiveMovie控件的准备状态发生改变时,在需要的情况下改变对话框的大小以//适应ActiveMovie控件的大小

OnReadyStateChangeAmovie(longReadyState)

//当ActiveMovie控件的状态发生改变时,在需要的情况下改变对话框的大小以适应

//ActiveMovie控件的大小

OnStateChangeAmovie(longoldState,longnewState)

这两个函数都是利用MFCClassWizard添加的,方法为:

在MessageMaps标签中的ClassName项中选择CVideoPlayerDlg,在ObjectIDs中选择IDC_AMOVIE,在Messages中先后选择StateChange和ReadyStateChange,按下“确定”按钮,两个函数添加成功。

2.实现“原始大小的两倍”菜单功能

①为“原始大小的两倍”菜单添加消息响应函数:

OnVideo2x()。

②OnVideo2x()函数的代码如下:

OnVideo2x()

m_AMovie.SetMovieWindowSize

(2);

6.2.7完成“音频”菜单的各子菜单功能

1.实现“调节音量”菜单功能

18.设计“音量调节”对话框

1在工程中,插入对话框资源(方法如前所示)。

2按图6-15所示设计好“音量调节”对话框。

3使用ClassWizard为该对话框创建新的类CVolumeDlg,并为滑块控件映射类型为CSliderCtrl的成员变量m_sld。

4编写类CVolumeDlg的代码

为该类添加protect型变量,声明如:

CActiveMovie*m_pAmovie;

用MFC为该类添加成员函数voidSetVolume(CActiveMovie*pAmovie);

并添加下列代码

voidCVolumeDlg:

SetVolume(CActiveMovie*pAmovie)

m_pAMovie=pAmovie;

//如果未打开任何媒体文件,则音量调节不可用。

ActiveMovie控件的//CurrentState属性返回控件的当前状态,-1表示未打开任何文件,此时弹出

//出错提示信息。

if(m_pAMovie->

GetCurrentState()!

=-1)

{DoModal();

}

else

{MessageBox("

音频设备尚未加载,请先打开一个媒体文件。

5通过MFC建立ON_WM_HSCROLL()的消息映射并添加下列代码

//用户拖动或点击滑块控件时,滑块控件的变化立即作用于ActiveMovie控件

OnHScroll(UINTnSBCode,UINTnPos,

CScrollBar*pScrollBar)

CSliderCtrl*pSlider=(CSliderCtrl*)pScrollBar;

intnVolume=pSlider->

GetPos();

m_pAMovie->

SetVolume(nVolume);

OnHScroll(nSBCode,nPos,pScrollBar);

6用MFC为该类添加成员函数virtualBOOLOnInitDialog();

BOOLCVolumeDlg:

OnInitDialog()

//设置音量滑块的最小值和最大值、标度和当前位置等

m_sld.SetRange(-10000,0);

m_sld.SetTicFreq(1000);

m_sld.SetLineSize(200);

m_sld.SetPageSize(1000);

//以ActiveMovie控件的当前音量作为音量滑块的当前位置

m_sld.SetPos(m_pAMovie->

GetVolume());

7为“调节音量”菜单添加消息响应函数:

OnAudeovolume()。

OnAudeovolume()函数的代码如下:

OnAudeovolume()

CVolumeDlgdlgVolum;

dlgVolum.SetVolum(&

m_AMovie);

在该类的头文件里加上#include"

activemovie3.h"

和#include"

VolumeDlg.h"

2.实现“调节左右声道平衡”菜单功能

(1)设计“调节左右声道平衡”对话框

1如图6-16所示设计“调节左右声道平衡”对话框。

2由ClassWizard创建的新类CBalanceDlg封装了该对话框。

同前面的对话框IDD_VOLUME相类似,CBalanceDlg定义

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2