www.pudn.com > MyMp3sec.rar > MyMp3secDlg.cpp
// 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()
{
GetDlgItemText(9,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v9;
GetDlgItem(IDC_v9)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::On10()
{
GetDlgItemText(10,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v10;
GetDlgItem(IDC_v10)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::On11()
{
GetDlgItemText(11,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v11;
GetDlgItem(IDC_v11)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::On12()
{
GetDlgItemText(12,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v12;
GetDlgItem(IDC_v12)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::On13()
{
GetDlgItemText(13,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v13;
GetDlgItem(IDC_v13)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::On14()
{
GetDlgItemText(14,wavlist);
wavlist=wavlist+".mp3";
Onx();
GetDlgItem(preV)->ShowWindow(SW_HIDE);
preV=IDC_v14;
GetDlgItem(IDC_v14)->ShowWindow(SW_SHOW);
}
void CMyMp3secDlg::OnCurrent()
{
// TODO: Add your control notification handler code here
int kkk=this->m_thePlayer.GetDuration(); //取得歌曲时间
CString j;
j.Format (_T("%s%d"),j,kkk);
MessageBox(j,TEXT("OnCurrent()中的m_thePlayer.GetDuration()"),MB_OK);
}
void CMyMp3secDlg::OnYanshi()
{
// TODO: Add your control notification handler code here
MessageBox(TEXT("ABC"),TEXT("OnCurrent()中的m_thePlayer.GetDuration()"),MB_OK);
//m_yanshi.Empty();
//m_yanshi.LoadString('a');
GetDlgItem(IDC_YANSHI)->SetWindowText(_T("china"));
MessageBox(TEXT("DET"),TEXT("OnCurrent()中的m_thePlayer.GetDuration()"),MB_OK);
GetDlgItem(IDC_YANSHI)->ShowWindow(SW_HIDE);
MessageBox(TEXT("DET"),TEXT("OnCurrent()中的m_thePlayer.GetDuration()"),MB_OK);
}
void CMyMp3secDlg::vadd()
{
long m_lState=m_thePlayer.GetPlayState();
if(m_lState==2)
{
long m_volume=m_thePlayer.GetVolume();
CString k;
k.Format(_T("%s%d"),k,m_volume);
//MessageBox(k,TEXT("m_volume"),MB_OK);
if(m_volume>-300)
{
m_volume=-300;
}
m_thePlayer.SetVolume(m_volume+300);
}
else return;
}
void CMyMp3secDlg::vnec()
{
long m_lState=m_thePlayer.GetPlayState();
if(m_lState==2)
{
long m_volume=m_thePlayer.GetVolume();
if(m_volume<-3000)
{
m_volume=-3000;
}
m_thePlayer.SetVolume(m_volume-300);
}
else return ;
}
void CMyMp3secDlg::OnFirst()
{
// TODO: Add your control notification handler code here
On0();
n=1;
file = FindFirstFile(directorystar,&lpFileData);
if(file!=INVALID_HANDLE_VALUE)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
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);
GetDlgItem(i)->SetWindowText(wavlist);
if(i<14)
{
FileEnd=FindNextFile(file,&lpFileData);
}
i++;
n++;
}
else
{
FileEnd=0;
}
}
}
void CMyMp3secDlg::OnPre()
{
On0();
for (int aa=1;aa <15; aa++)//首先将1到14个静态文本清空
{
GetDlgItem(aa)->SetWindowText(_T(""));
}
int k,d;
k=n/14;
d=n%14;
if(n<29)
{
file = FindFirstFile(directorystar,&lpFileData);
if(file!=INVALID_HANDLE_VALUE)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(1)->SetWindowText(wavlist);
n=1;
}
int i;
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);
GetDlgItem(i)->SetWindowText(wavlist);
if(i<14)
{
FileEnd=FindNextFile(file,&lpFileData);
}
i++;
n++;
}
else
{
FileEnd=0;
}
}
}
else //n>=29(我们的n=32),例如现在第三页(也是最后一页),此时n=32则k=2,d=4
{
//假如n=42,则 k=3,d=0,现在第三页n=42
if(d==0)
{
file = FindFirstFile(directorystar,&lpFileData);
n=1;
for(int aa=1;aa<14*(k-2);aa++)//aa=1;aa<14;aa++
{
FindNextFile(file,&lpFileData);
n++;
}
int i=1;
BOOL FileEnd=FindNextFile(file,&lpFileData);
while(FileEnd != 0)
{
if(i<15)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(i)->SetWindowText(wavlist);
if(i<14)
{
FileEnd=FindNextFile(file,&lpFileData);
}
n++;
i++;
}
else
{
FileEnd=0;
}
}
}
else//n>=29(我们的n=32),例如现在第三页(也是最后一页),此时n=32则k=2,d=4
{
//MessageBox(_T("进入我们的循环"));
file = FindFirstFile(directorystar,&lpFileData);
n=1;
for(int aa=1;aa<14*(k-1);aa++)//aa=1;aa<14;aa++
{
FindNextFile(file,&lpFileData);
n++;
}
int i=1;
BOOL FileEnd=FindNextFile(file,&lpFileData);
while(FileEnd != 0)
{
if(i<15)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(i)->SetWindowText(wavlist);
if(i<14)
{
FileEnd=FindNextFile(file,&lpFileData);
}
n++;
i++;
}
else
{
FileEnd=0;
}
}
}
}
}
void CMyMp3secDlg::OnNext()
{
On0();
int i=1;
BOOL FileEnd=FindNextFile(file,&lpFileData);
if(FileEnd!= 0)
{
for (int aa=1;aa < 15; aa++)//将8改为15
{
GetDlgItem(aa)->SetWindowText(_T(""));
}
}
while(FileEnd != 0)
{
if(i<15)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(i)->SetWindowText(wavlist);
//当i=13找到第14个文件,接着i=14,将第14个文件显示。
//接着因i=14,跳过if(i<14),i=15,n=28跳过if(i<15),FileEnd=0,跳出while循环
if(i<14)
{
FileEnd=FindNextFile(file,&lpFileData);
}
n++;
i++;
}
else
{
FileEnd=0;
}
}
}
void CMyMp3secDlg::OnEnd()
{
On0();
for (int aa=1;aa <15; aa++)
{
GetDlgItem(aa)->SetWindowText(_T(""));
}
int k,z=0,d;
file = FindFirstFile(directorystar,&lpFileData);
if(file!=INVALID_HANDLE_VALUE)
{
z++;//如果有第一个文件,z变为1
}
BOOL FileEnd=FindNextFile(file,&lpFileData);
while(FileEnd != 0)
{
z++; //z最后是文件的数目
FileEnd=FindNextFile(file,&lpFileData);
}
k=z/14;//例如z=32,则k=2(页数),d=4(剩在最后一叶的)
d=z%14;
if(z<=14)//如果所有文件在第一页就可以显示
{
file = FindFirstFile(directorystar,&lpFileData);
if(file!=INVALID_HANDLE_VALUE)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(1)->SetWindowText(wavlist);
n=0;
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);
GetDlgItem(i)->SetWindowText(wavlist);
n++;
FileEnd=FindNextFile(file,&lpFileData);
i++;
}
else
{
FileEnd=0;
}
}
}
else //z>14
{
file = FindFirstFile(directorystar,&lpFileData);
n=1;
if(d!=0)////例如z=32,则k=2(页数),d=4 (剩在最后一页的)
{
for(int aa=0;aa<14*k-1;aa++)//aa是整页的文件数目,例如aa=14*2-1=27,aa从0到27
{
FindNextFile(file,&lpFileData);
n++; //n++循环27次,n最后等于28 (n是前面整页的个数)
}
}
else//d=0,表明是整页,没有余的,如果整两页k=2,则n=14;
// 如果整三页k=3,则n=28;
// 如果整四页k=4,则n=42;
{
for(int aa=0;aa<14*(k-1)-1;aa++)
{
FindNextFile(file,&lpFileData);
n++; //n是除最后一页外前面整页的个数
}
}
//CString k;
//k.Format (TEXT("%s%d"),k,n);
//MessageBox(k,TEXT("n应该是28"),MB_OK);
//在显示最后一页时,前面统计n并没有作用,实际上是靠FindNextFile()移动寻找指针,
//例如有32个文件,前面首先n=1找到第一个文件,接着循环27次(这时n=28,文件指针指向第28个文件)
int i=1;
BOOL FileEnd=FindNextFile(file,&lpFileData);//文件指针指向第29个文件
while(FileEnd != 0)
{
if(i<15)
{
CString wavlist;
wavlist=lpFileData.cFileName;
int dot=wavlist.Find('.');
wavlist=wavlist.Left(dot);
GetDlgItem(i)->SetWindowText(wavlist);
n++; //n最后指向第32个文件
FileEnd=FindNextFile(file,&lpFileData);
i++;
}
else
{
FileEnd=0;
}
}
}
}
HBRUSH CMyMp3secDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
for(int color=1;color<15;color++)
{
if(pWnd->GetDlgCtrlID()==color)
{
pDC->SetBkColor(RGB(180,180,180));
pDC->SetTextColor(RGB(0,0,255));
}
}
// TODO: Return a different brush if the default is not desired
return hbr;
}