⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mymp3secdlg.cpp

📁 用EVC开发的MP3播放器,可以播放.mp3,.wma,.wav等格式的音乐文件,还具有声音调节功能.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// MyMp3secDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyMp3sec.h"
#include "MyMp3secDlg.h"
#include "PLAYBOX.h"
#include "DeleteDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMyMp3secDlg dialog
PLAYBOX *pboxx;
CMyMp3secDlg::CMyMp3secDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CMyMp3secDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMyMp3secDlg)
	m_yanshi = _T("TEST");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	PLAY.LoadBitmaps(IDB_PLAY);
	PLAYALL.LoadBitmaps(IDB_PLAYALL);
	HOME.LoadBitmaps(IDB_PEXIT);
	BACK.LoadBitmaps(IDB_PBACK);
	DELE.LoadBitmaps(IDB_DELE);

	FIRST.LoadBitmaps(IDB_FIRST);
	END.LoadBitmaps(IDB_END);
	PRE.LoadBitmaps(IDB_PRE);
	NEXT.LoadBitmaps(IDB_NEXT);

	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	//PEXIT.LoadBitmaps(IDB_PEXIT);
	
}

void CMyMp3secDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyMp3secDlg)
	DDX_Control(pDX,IDC_MEDIAPLAYER1,m_thePlayer);
	DDX_Text(pDX, IDC_YANSHI, m_yanshi);
	DDX_Text(pDX,1,m_1);//下面这些语句使nIDC(比如这里的1、2、3等)与CString m[i]和EDit mcon[i]
						//联系起来,只要设定了m[i]的字体,则可以一老永逸,翻页的显示就不用再设了
	DDX_Control(pDX,1,m_1con);

	DDX_Text(pDX,2,m[1]);
	DDX_Control(pDX,2,mcon[1]);
	DDX_Text(pDX,3,m[2]);
	DDX_Control(pDX,3,mcon[2]);
	DDX_Text(pDX,4,m[3]);
	DDX_Control(pDX,4,mcon[3]);
	DDX_Text(pDX,5,m[4]);
	DDX_Control(pDX,5,mcon[4]);
	DDX_Text(pDX,6,m[5]);
	DDX_Control(pDX,6,mcon[5]);
	DDX_Text(pDX,7,m[6]);
	DDX_Control(pDX,7,mcon[6]);
	DDX_Text(pDX,8,m[7]);
	DDX_Control(pDX,8,mcon[7]);
	DDX_Text(pDX,9,m[8]);
	DDX_Control(pDX,9,mcon[8]);
	DDX_Text(pDX,10,m[9]);
	DDX_Control(pDX,10,mcon[9]);
	DDX_Text(pDX,11,m[10]);
	DDX_Control(pDX,11,mcon[10]);
	DDX_Text(pDX,12,m[11]);
	DDX_Control(pDX,12,mcon[11]);
	DDX_Text(pDX,13,m[12]);
	DDX_Control(pDX,13,mcon[12]);
	DDX_Text(pDX,14,m[13]);
	DDX_Control(pDX,14,mcon[13]);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CMyMp3secDlg, CDialog)
	//{{AFX_MSG_MAP(CMyMp3secDlg)
	ON_BN_CLICKED(IDC_HOME, OnHome)
	ON_BN_CLICKED(IDC_PLAY, OnPlay)
	ON_BN_CLICKED(IDC_CURRENT, OnCurrent)
	ON_BN_CLICKED(IDC_YANSHI, OnYanshi)
	ON_BN_CLICKED(IDC_PLAYALL, OnPlayall)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_FIRST, OnFirst)
	ON_BN_CLICKED(IDC_PRE, OnPre)
	ON_BN_CLICKED(IDC_NEXT, OnNext)
	ON_BN_CLICKED(IDC_END, OnEnd)
	ON_BN_CLICKED(IDC_BACK, OnBack)
	ON_BN_CLICKED(IDC_DELE, OnDele)
	ON_BN_CLICKED(1, On1)
	ON_BN_CLICKED(2, On2)//使单击文本就执行与图片IDC_v1对应的函数On1()
	ON_BN_CLICKED(3, On3)
	ON_BN_CLICKED(4, On4)
	ON_BN_CLICKED(5, On5)
	ON_BN_CLICKED(6, On6)
	ON_BN_CLICKED(7, On7)
	ON_BN_CLICKED(8, On8)
	ON_BN_CLICKED(9, On9)
	ON_BN_CLICKED(10, On10)
	ON_BN_CLICKED(11, On11)
	ON_BN_CLICKED(12, On12)
	ON_BN_CLICKED(13, On13)
	ON_BN_CLICKED(14, On14)
	ON_WM_CTLCOLOR()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyMp3secDlg message handlers

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

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen
	//VERIFY(PEXIT.SubclassDlgItem(IDC_PEXIT,this));
	//PEXIT.SizeToContent();
	VERIFY(PLAY.SubclassDlgItem(IDC_PLAY,this));
	PLAY.SizeToContent();
	VERIFY(PLAYALL.SubclassDlgItem(IDC_PLAYALL,this));
	PLAYALL.SizeToContent();
	VERIFY(HOME.SubclassDlgItem(IDC_HOME,this));
	HOME.SizeToContent();
	VERIFY(BACK.SubclassDlgItem(IDC_BACK,this));
	BACK.SizeToContent();
	VERIFY(DELE.SubclassDlgItem(IDC_DELE,this));
	DELE.SizeToContent();

	VERIFY(FIRST.SubclassDlgItem(IDC_FIRST,this));
	FIRST.SizeToContent();
	VERIFY(END.SubclassDlgItem(IDC_END,this));
	END.SizeToContent();
	VERIFY(PRE.SubclassDlgItem(IDC_PRE,this));
	PRE.SizeToContent();
	VERIFY(NEXT.SubclassDlgItem(IDC_NEXT,this));
	NEXT.SizeToContent();

	GetDlgItem(IDC_v1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v2)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v3)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v4)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v5)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v6)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v7)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v8)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v9)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v10)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v11)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v12)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v13)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_v14)->ShowWindow(SW_HIDE);

	time=new CFont;
	time->CreateFont(18,0,0,0,900,FALSE,FALSE,0,
					ANSI_CHARSET,OUT_DEFAULT_PRECIS,
					CLIP_DEFAULT_PRECIS,
					DEFAULT_QUALITY,
					DEFAULT_PITCH|FF_SWISS,
					_T("宋体"));
	
	preV=IDC_v1;
	// TODO: Add extra initialization here
	directory="\\Storage Card\\";
	//directory="\\Temp\\";
	directorystar="\Storage Card\\*.mp3";
	SearchFile();
	On0();
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CMyMp3secDlg::SearchFile()
{
	n=0;
	file=FindFirstFile(_T("\\Storage Card\\*.mp3"),&lpFileData);
	//file=FindFirstFile(_T("\\Temp\\*.mp3"),&lpFileData);
	if(file!=INVALID_HANDLE_VALUE)
	{
		CString wavlist;
		wavlist=lpFileData.cFileName;
		int dot=wavlist.Find('.');
		m_1=wavlist.Left(dot);
		//m_1=wavlist;
		m_1con.SetFont(time);
		m_1con.SetWindowText(m_1);
	//MessageBox(wavlist,TEXT("wavlist"),MB_OK);
		//GetDlgItem(1)->SetWindowText(wavlist);
		n++;
	}
	int i=2;
	BOOL FileEnd=FindNextFile(file,&lpFileData);
	while(FileEnd!=0)
	{
		if(i<15)
		{
			CString wavlist;
			wavlist=lpFileData.cFileName;
			int dot=wavlist.Find('.');
			wavlist=wavlist.Left(dot);
			m[n]=wavlist;
			mcon[n].SetFont(time);
			//mcon[n].SetWindowText(m[n]);//这一句也可以,下面一句也可以
			GetDlgItem(i)->SetWindowText(wavlist);
			if(i<14)
			{
				FileEnd=FindNextFile(file,&lpFileData);
			}
			i++;
			n++;
		}
		else
		{
			FileEnd=0;
		}
	}
}

void CMyMp3secDlg::OnHome() 
{
	CMyMp3secDlg::OnOK();
	CMyMp3secDlg::DestroyWindow();
}

void CMyMp3secDlg::OnPlay() 
{

	delete pboxx;
	this->m_thePlayer.SetFileName(Wavpath);
	this->m_thePlayer.Play();
	pboxx=new PLAYBOX;
	CMyMp3secDlg *dlggg=this;
	pboxx->pmed=dlggg;//////////////////////////////////////////////////////important
	pboxx->m_sSongnamep=wavlist;
	pboxx->m_sSongpath=Wavpath;
	pboxx->Create(IDD_PLAYBOX,NULL);
	pboxx->ShowWindow(SW_SHOW);
	//dlggg->ShowWindow (SW_HIDE);
}

void CMyMp3secDlg::OnPlayall() 
{

	file=FindFirstFile(_T("\\Storage Card\\*.mp3"),&lpFileData);
	//file=FindFirstFile(_T("\\Temp\\*.mp3"),&lpFileData);
	if(file!=INVALID_HANDLE_VALUE)
	{
		//CString wavlist;
		wavlist=lpFileData.cFileName;
	//MessageBox(wavlist,TEXT("first wavlist"),MB_OK);
		//GetDlgItem(1)->SetWindowText(wavlist);
		//n++;
		Wavpath=directory+wavlist;

	}
	this->m_thePlayer.SetFileName(Wavpath);
	this->m_thePlayer.Play();
	
	/*
	PLAYBOX *pbox=new PLAYBOX;
	pbox=new PLAYBOX;
	CMyMp3secDlg *dlggg=this;
	pbox->pmed=dlggg;//////////////////////////////////////////////////////important
	pbox->m_sSongnamep=wavlist;
	pbox->m_sSongpath=Wavpath;
	pbox->Create(IDD_PLAYBOX,NULL);
	pbox->ShowWindow(SW_SHOW);
	*/
	pboxx=new PLAYBOX;
	CMyMp3secDlg *dlggg=this;
	//SetTimer(1,1000,NULL);
	pboxx->pmed=dlggg;//////////////////////////////////////////////////////important
//MessageBox(wavlist,TEXT("second wavlist"),MB_OK);
	pboxx->m_sSongnamep=wavlist;
	pboxx->m_sSongpath=Wavpath;
	pboxx->Create(IDD_PLAYBOX,NULL);
	pboxx->ShowWindow(SW_SHOW);
	pboxx->PLAYALL();
	//dlggg->ShowWindow (SW_HIDE);
	
}

void CMyMp3secDlg::OnBack() 
{
	// TODO: Add your control notification handler code here
	CMyMp3secDlg::OnOK();
	CMyMp3secDlg::DestroyWindow();
}

void CMyMp3secDlg::OnDele() 
{
	// TODO: Add your control notification handler code here
	CString str,a;
	CDeleteDlg deletedlg;
	deletedlg.sourcepath=Wavpath;
	deletedlg.n1=n;
	deletedlg.mymp3dlg=this;
	deletedlg.DoModal();
}

void CMyMp3secDlg::OnTimer(UINT nIDEvent) 
{

		long m_lState=m_thePlayer.GetPlayState();
		if(m_lState==0)
		{
		//MessageBox(TEXT("FIRST SONG OVER"),TEXT("CONMENT"),MB_OK);
			//delete pboxx;//必须屏蔽,否则IDD_PLAYBOX将消失
			KillTimer(1);
		MessageBox(TEXT("FIRST SONG OVER"),TEXT("CONMENT"),MB_OK);
			BOOL FileEnd=FindNextFile(file,&lpFileData);
			while(FileEnd!=0)
			{
			MessageBox(TEXT("enter FileEnd"),TEXT("CONMENT"),MB_OK);
				CString wavlist;
				wavlist=lpFileData.cFileName;
				Wavpath=directory+wavlist;
			MessageBox(Wavpath,TEXT("Wavpath"),MB_OK);
				this->m_thePlayer.SetFileName(Wavpath);
				this->m_thePlayer.Play();
				/*
				PLAYBOX *pbox=new PLAYBOX;
				CMyMp3secDlg *dlggg=this;
				pbox->pmed=dlggg;
				pbox->m_sSongnamep=wavlist;
				pbox->m_sSongpath=Wavpath;
				*/
				pboxx=new PLAYBOX;
				CMyMp3secDlg *dlggg=this;
				pboxx->pmed=dlggg;//////////////////////////////////////////////////////important
				pboxx->m_sSongnamep=wavlist;
				pboxx->m_sSongpath=Wavpath;
				//pboxx->ShowWindow(SW_SHOW);
				//dlggg->ShowWindow (SW_HIDE);
				SetTimer(1,1000,NULL);
				break;
				//FileEnd=FindNextFile(file,&lpFileData);
			}
		}
		//FileEnd=FindNextFile(file,&lpFileData);

	CDialog::OnTimer(nIDEvent);
}

void CMyMp3secDlg::On0()
{
	GetDlgItemText(1,wavlist);
	CMyMp3secDlg::Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v1;
	GetDlgItem(IDC_v1)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On1()
{
	
	GetDlgItemText(1,wavlist);
	wavlist=wavlist+".mp3";
//MessageBox(wavlist,_T("CONTENT"),MB_OK);
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v1;
	GetDlgItem(IDC_v1)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::Onx()
{
	CString SourcePath=directory;
	Wavpath=SourcePath+wavlist;
}



void CMyMp3secDlg::On2()
{
	GetDlgItemText(2,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v2;
	GetDlgItem(IDC_v2)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On3()
{
	GetDlgItemText(3,wavlist);
	wavlist=wavlist+".mp3";
//MessageBox(wavlist,TEXT("wavlist"),MB_OK);
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v3;
	GetDlgItem(IDC_v3)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On4()
{
	GetDlgItemText(4,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v4;
	GetDlgItem(IDC_v4)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On5()
{
	GetDlgItemText(5,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v5;
	GetDlgItem(IDC_v5)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On6()
{
	GetDlgItemText(6,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v6;
	GetDlgItem(IDC_v6)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On7()
{
	GetDlgItemText(7,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v7;
	GetDlgItem(IDC_v7)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On8()
{
	GetDlgItemText(8,wavlist);
	wavlist=wavlist+".mp3";
	Onx();
	GetDlgItem(preV)->ShowWindow(SW_HIDE);
	preV=IDC_v8;
	GetDlgItem(IDC_v8)->ShowWindow(SW_SHOW);
}

void CMyMp3secDlg::On9()
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -