我在对话框上添加了一个按钮,用来向我的列表框中添加MP3文件,对话框打开后每次只能添加一个文件;怎么实现:按住shift选择多个文件同时添加到列表框呢???
希望各位大侠指教,我的代码如下:
CString strFilter;
strFilter="所有支持文件(*.mp3,*.wav,*.wma)|*.mp3;*.wav;*.wma||";
CFileDialog fdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,strFilter);
if(fdlg.DoModal()==IDOK)
{
CString strFileName=fdlg.GetPathName();
m_strPlayListArray.RemoveAll();
m_strPlayListArray.Add(strFileName);
CString strList,strFile,str;
strFile=GetFileTitle(strFileName);
// str=;
strList.Format(_T("01 %s"),strFile);
m_pPlayListDlg->m_playlist.ResetContent();
m_pPlayListDlg->m_playlist.AddString(strList);
}
希望各位大侠指教,我的代码如下:
CString strFilter;
strFilter="所有支持文件(*.mp3,*.wav,*.wma)|*.mp3;*.wav;*.wma||";
CFileDialog fdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY,strFilter);
if(fdlg.DoModal()==IDOK)
{
CString strFileName=fdlg.GetPathName();
m_strPlayListArray.RemoveAll();
m_strPlayListArray.Add(strFileName);
CString strList,strFile,str;
strFile=GetFileTitle(strFileName);
// str=;
strList.Format(_T("01 %s"),strFile);
m_pPlayListDlg->m_playlist.ResetContent();
m_pPlayListDlg->m_playlist.AddString(strList);
}
CString strFilter,strList;
int nPos;
strFilter=_T("所有支持文件(*.mp3,*.wav,*.wma)|*.mp3;*.wav;*.wma||");
CFileDialog fdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT,strFilter);
CArray<CString> m_strPlayListArray,m_FileTileArray;
if(fdlg.DoModal()==IDOK)
{
CString strFileName;//=fdlg.GetFileName();
POSITION pos = fdlg.GetStartPosition();
while(pos!=NULL)
{
//m_strPlayListArray.RemoveAll();
strFileName = fdlg.GetNextPathName(pos);
nPos = strFileName.ReverseFind(_T('\\'));
strList = strFileName.Right(nPos);
m_strPlayListArray.Add(strFileName); //完整的文件路径
m_FileTileArray.Add(strList); //文件名
}
ASSERT(m_FileTileArray.GetCount()!=0);
for (int i=0;i<m_FileTileArray.GetCount();++i)
{
strList.Format(_T("%d.%s"),i,m_FileTileArray[i]);
//m_PlayList.ResetContent();
m_PlayList.AddString(m_FileTileArray[i]);
}
VC2010+WIN7 运行成功
按住shift仍然不能实现多选、
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT|OFN_ENABLESIZING
CFileDialog fdlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,strFilter);
难道系统默认的CStringArray的大小就是10吗???