www.pudn.com > MEDIAPLAYER.rar > VolumeDlg.cpp
// VolumeDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MEDIAPLAYER.h"
#include "VolumeDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVolumeDlg dialog
CVolumeDlg::CVolumeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CVolumeDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CVolumeDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CVolumeDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVolumeDlg)
DDX_Control(pDX, IDC_SLIDER1, m_sld);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CVolumeDlg, CDialog)
//{{AFX_MSG_MAP(CVolumeDlg)
ON_WM_HSCROLL()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVolumeDlg message handlers
BOOL CVolumeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置音量滑块的最小值、标度和当前位置等
m_sld.SetRange(-10000,0);
m_sld.SetTicFreq(1000);
m_sld.SetLineSize(200);
m_sld.SetPageSize(1000);
//以ActiveMovie控件的当前音量作为滑块的当前位置
m_sld.SetPos(m_pAmovie->GetVolume());
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CVolumeDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
//在用户拖动或点击滑快控件时,将所作用的改变立即作用于ActiveMovie控件
CSliderCtrl *pSlider=(CSliderCtrl*)pScrollBar;
int nVolume=pSlider->GetPos();
m_pAmovie->SetVolume(nVolume);
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CVolumeDlg::SetVolume(CActiveMovie2 *pAmovie)
{
//提供给类外部的使用者的编程接口方法
m_pAmovie=pAmovie;
//如果未加载任何媒体文件,则音量调节对话框不可用
//ActiveMovie控件的CurrentState属性返回控件的当前值,-1表示未加载任何//媒体文件,此时弹出出错信息
if(m_pAmovie->GetCurrentState()!=-1)
{
DoModal();
}
else
{
MessageBox("音频设备尚未加载,请先打开一个媒体文件");
}
}