VC6.0下加载ActiveMovieControl Object

大部分情况下,VC里没有ActiveMovieControl Object这个控件

 

加载ActiveMovieControl Object控件操作:
"开始"->"运行"->"输入regsvr32 msdxm.ocx"->"确定",会弹出一个对话框说成功的!!


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(*.*)|*.*||";//文件类型过滤

//注意:如果project是宽字节 需要文件类型需要修改为

/*TCHAR szFileFilter[]=L"Mp3 File(*.mp3)|*.mp3|" L"Wma File(*.wma)|*.wma|"
  L"Video File(*.dat)|*.dat|" L"Wave File(*.wav)|*.wav|" L"AVI File(*.avi)|*.avi|"
  L"Movie File(*.mov)|*.mov|" L"Media File(*.mmm)|*.mmm|"
  L"Mid File(*.mid;*,rmi)|*.mid;*.rmi|" L"MPEG File(*.mpeg)|*.mpeg|"
  L"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,"Status:Repeat");
 }
 else{
  isRepeat=FALSE;
  SetDlgItemText(IDC_STATIC2,"Status:Normal");
 } 
}

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();
 if(CurrentPos==0&&isRepeat)//如果当前是文件的起始位置而且为重复播放状态
  m_ActiveMovie.Run();
 CDialog::OnTimer(nIDEvent);
}


  5. 为使播放器具有Repeat功能,需在头文件MediaPlayerDlg.h 加入控制变量BOOL isRepeat;类型可为Private。同时修改OnInitDialog()函数:

BOOL CMediaPlayerDlg::OnInitDialog()
{
CDialog::OnInitDialog();

isRepeat=FALSE;
……
}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值