用CFileDialog类,一次得到多个文件名。像一些文件对话框一样,用Ctrl或者Alt,同时选中多个文件,并且得到文件名。以下程序只能选中一个文件。
 CSting m_sFile;
          CFileDialog dlg(true,"","",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"All Files(*.*)|*.*");
if(dlg.DoModal ()==IDOK)
{
m_sFile.Insert(strlen(m_sFile),(dlg.GetPathName ()).GetBuffer (128));
}
UpdateData(false);
   怎样得到多个文件?请给出源代码。

解决方案 »

  1.   

    OFN_ALLOWMULTISELECT   选择多个文件
      

  2.   

    void CMp3Tab::OnBrowes() 
    {
    //Ìí¼ÓÁбí
    CString strFileName;
    CFileDialog Filedlg( TRUE, NULL, NULL, 
    OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, 
    "MP3 Files (*.mp3)|*.mp3|All Files(*.*)|*.*|", AfxGetMainWnd() ); DWORD MAXFILE = 2412; // allocate enough memory space
    Filedlg.m_ofn.nMaxFile = MAXFILE; // set the buffer size
    char* buf = new char[MAXFILE];
    Filedlg.m_ofn.lpstrFile = buf;
    Filedlg.m_ofn.lpstrFile[0] = NULL; 
    int iReturn = Filedlg.DoModal();
    if(iReturn == IDOK)
    {
    POSITION pos = Filedlg.GetStartPosition();
    while (pos != NULL)
    {
    strFileName=Filedlg.GetNextPathName(pos); 
    // get the individual file name
        m_Mp3List.AddString (strFileName );
    // add to Mp3 ListBox
    }
    }
    delete [] buf;修改一下就可以