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;
}