www.pudn.com > SOAVI2BMP_ACTIVEMOVIE.rar > VolumeDlg.cpp, change:2007-05-23,size:2363b


// VolumeDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "soavi2bmp.h" 
#include "VolumeDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
#include "SOAVI2BMPDlg.h" 
 
///////////////////////////////////////////////////////////////////////////// 
// 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 
	ASSERT( pParent != NULL ); 
	m_pAmovie = &((CSOAVI2BMPDlg *)pParent)->m_ctlActiveMovie; 
} 
 
 
void CVolumeDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CVolumeDlg) 
	DDX_Control(pDX, IDC_SLIDER_VOLUME, 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 
 
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); 
} 
 
BOOL CVolumeDlg::OnInitDialog()  
{ 
   CDialog::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());    
    
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
 
void CVolumeDlg::SetVolume(CActiveMovie3* pAmovie) 
{ 
	//提供给类外部的使用者的编程接口方法 
	m_pAmovie = pAmovie; 
 
	//如果未加载任何媒体文件,则音量调节对话框不可用 
	//ActiveMovie控件的CurrentState属性返回控件的当前值,-1表示未加载任何 
	//媒体文件,此时弹出出错信息 
 
	if(m_pAmovie->GetCurrentState()!=-1) 
	{ 
		DoModal(); 
	} 
	else 
	{ 
		MessageBox("音频设备尚未加载,请先打开一个媒体文件"); 
	} 
}