编辑: 达达恰西瓜 2015-01-31
自制多媒体播放器 使用VC++6.

0强大的AppWizard、ClassWizard和其中的各种控件可以方便地建立各种应用程序.但是想要实现更高级更复杂的功能,就要借助丰富的ActiveX控件资源了.这里就要使用VC++6.0自带的一个ActiveX控件――ActiveMovieControl Object,来建立自己的多媒体播放器.此多媒体具有一般的播放功能,能播放:*.mp3,*.wma,*.mdi,*.wav,*.avi,*.dat等文件,还有Repeat功能. 具体步骤: 1. 打开VC6.0,在Projects下选择MFC AppWizard(exe),并取名MediaPlayer,然后建立基于对话框的应用程序. 2. 打开Resource View,选择其中的对话框,打开其中的主对话框,去掉对话框上的"确定"按钮,保留"取消",将Caption改为"退出".然后再在上面加上九个按钮,ID和Caption分别为 IDC_OPEN,打开;

IDC_PLAY,播放;

IDC_PAUSE,暂停;

IDC_STOP,停止;

IDC_CLOSE,关闭;

IDC_LOWER,;

IDC_FULLSCREEN,全屏;

IDC_REPEAT,重复;

再加入两个静态文本控件,分别为: IDC_STATIC,音量;

IDC_STATIC2,状态:正常. 3. 点击"开始"菜单,运行 regsvr32 msdxm.ocx,出现"注册成功"的对话框后打开Projects->Add to Project->Components and Controls->Registered ActiveX Controls对话框,选择其中的ActiveMovieControl Object, Insert,OK之后,会发现控件面板上多了一项ActiveMovieControl Object,将它选中,直接放在对话框上. 按Ctrl+W打开ClassWizard为它添加变量m_ActiveMovie.各控件的布局如图: 4.为程序添加消息处理函数.打开ClassWizard,为各个按钮加入消息处理函数.在MediaPlayerDlg.cpp文件里为各消息处理函数添加代码,各代码如下: void CMediaPlayerDlg::OnClose() { m_ActiveMovie.CloseWindow();

//关闭窗口 } void CMediaPlayerDlg::OnOpen() { char szFileFilter[]= "Mp3 File(*.mp3)|*.mp3|" "Wma File(*.wma)|*.wma|" "Video File(*.dat)|*.dat|" "Wave File(*.wav)|*.wav|" "AVI File(*.avi)|*.avi|" "Movie File(*.mov)|*.mov|" "Media File(*.mmm)|*.mmm|" "Mid File(*.mid;

*,rmi)|*.mid;

*.rmi|" "MPEG File(*.mpeg)|*.mpeg|" "All File(文件类型过滤 CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);

if(dlg.DoModal()==IDOK){ CString PathName=dlg.GetPathName();

PathName.MakeUpper();

m_ActiveMovie.SetFileName(PathName);

} } void CMediaPlayerDlg::OnPlay() { m_ActiveMovie.Run();

//播放文件 SetTimer(0,20,NULL);

//设置定时器 } void CMediaPlayerDlg::OnStop() { m_ActiveMovie.Stop();

//停止播放文件 KillTimer(0);

//关掉定时器 } void CMediaPlayerDlg::OnPause() { m_ActiveMovie.Pause();

//暂停播放 } void CMediaPlayerDlg::OnUpper()//增加音量 { long Volume=m_ActiveMovie.GetVolume();

m_ActiveMovie.Pause();

m_ActiveMovie.SetVolume(Volume+100);

m_ActiveMovie.Run();

} void CMediaPlayerDlg::OnLower()//减少音量 { long Volume=m_ActiveMovie.GetVolume();

m_ActiveMovie.Pause();

m_ActiveMovie.SetVolume(Volume-100);

m_ActiveMovie.Run();

} void CMediaPlayerDlg::OnRepeat()//重复模式 { if(!isRepeat){ isRepeat=TRUE;

SetDlgItemText(IDC_STATIC2,"状态:重复");

} else{ isRepeat=FALSE;

SetDlgItemText(IDC_STATIC2,"状态:正常");

} } void CMediaPlayerDlg::OnFulscreeen()//全屏播放 { m_ActiveMovie.Pause();

m_ActiveMovie.SetFullScreenMode(true);

m_ActiveMovie.SetMovieWindowSize(SW_SHOWMAXIMIZED);

m_ActiveMovie.Run();

} 这里需要注意的是,下面的函数OnTimer()需通过ClassWizard(Ctrl+W)来添加,不能直接复制: void CMediaPlayerDlg::OnTimer(UINT nIDEvent) { double CurrentPos=m_ActiveMovie.GetCurrentPosition();

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题