www.pudn.com > LECTEUR-MP3.zip > OptionDlg.cpp


// OptionDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "MusGest.h" 
#include "OptionDlg.h" 
#include "MainFrm.h" 
 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// COptionDlg dialog 
 
 
COptionDlg::COptionDlg(CWnd* pParent , CMusGestDoc * pDoc) 
	: CDialog(COptionDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(COptionDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
 
	m_pDoc = pDoc; 
	m_bMute = false; 
} 
 
 
void COptionDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(COptionDlg) 
	DDX_Control(pDX, IDC_SLIDER_BAL, m_SlidBal); 
	DDX_Control(pDX, IDC_VOLUME, m_SlidVol); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(COptionDlg, CDialog) 
	//{{AFX_MSG_MAP(COptionDlg) 
	ON_MESSAGE(WM_RSLID_CHANGE, OnVolChange) 
	ON_MESSAGE(WM_SLIDER_POS_CHANGE, OnSliderExPosChange) 
	ON_BN_CLICKED(IDC_MAX, OnMax) 
	ON_BN_CLICKED(IDC_MIUTE, OnMute) 
	ON_BN_CLICKED(IDC_CENTER, OnCenter) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// COptionDlg message handlers 
 
BOOL COptionDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
 
	if (!m_pDoc) 
		return FALSE; 
	 
	 
	m_SlidVol.SetParent(this); 
	m_SlidVol.SetRange(1, 100, FALSE); 
	m_SlidVol.SetPos(50); 
	m_SlidVol.SetZero(1); 
 
	int iVol = m_pDoc->GetVolume(); 
	if (iVol > -1) 
		m_SlidVol.SetPos(iVol); 
 
	 
	/****************************************/ 
 
 
	m_SlidBal.SetRange(-100,100); 
	m_SlidBal.SetTicFreq(50); 
	m_SlidBal.SetPos(0); 
 
	int iBal = m_pDoc->GetBalance(); 
	m_SlidBal.SetPos(iBal); 
	 
 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
//----------------------------------------------------------- 
void COptionDlg::OnMax()  
{ 
	PostMessage(WM_RSLID_CHANGE,(WPARAM)100); 
	m_SlidVol.SetPos(100); 
} 
 
//----------------------------------------------------------- 
void COptionDlg::OnMute()  
{ 
	if (m_pDoc) 
	{ 
		m_pDoc->SetMute(!m_bMute); 
		m_bMute = !m_bMute; 
	} 
} 
 
//----------------------------------------------------------- 
void COptionDlg::OnCenter()  
{ 
	if (m_pDoc) 
		m_pDoc->ChangeBalance(0); 
 
	m_SlidBal.SetPos(0); 
} 
 
//----------------------------------------------------------- 
LRESULT COptionDlg::OnVolChange(WPARAM w , LPARAM l) 
{ 
	int iPos = (int)w; 
	float fVal = (float)((float)iPos/100); 
 
	CMainFrame * pFrame = (CMainFrame*)GetParentFrame(); 
 
	if (m_pDoc) 
		m_pDoc->ChangeVolume(fVal); 
 
	if (pFrame) 
		pFrame->ShowVolume(iPos); 
 
	m_SlidVol.Invalidate(); 
 
	return TRUE; 
} 
 
//----------------------------------------------------------- 
LRESULT COptionDlg::OnSliderExPosChange(WPARAM w , LPARAM l) 
{ 
	int nId = (int)w; 
	int iPos = (int)l; 
 
	switch (nId) 
	{ 
		case IDC_SLIDER_BAL: 
		{ 
			if (m_pDoc) 
				m_pDoc->ChangeBalance(iPos); 
 
		};break; 
 
		default : break; 
	} 
 
	return TRUE; 
}