将m_ofn.Flags设置OFN_ALLOWMULTISELECT,m_ofn.lpstrFile(缓冲区指针),m_ofn.nMaxFile(缓冲区大小)。
然后用GetStartPosition()、GetNextPathName(POSITION& pos)取出每一个文件名。

解决方案 »

  1.   

    我的代码如下
    char filenamebuf[2048];         CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT|OFN_EXPLORER,"文本文件,(*.txt)|*.txt",NULL);

    FileDlg.m_ofn.Flags |= OFN_EXPLORER;
    FileDlg.m_ofn.nMaxFile = 2048;
    FileDlg.m_ofn.lpstrFile = filenamebuf;
    ASSERT(FileDlg.DoModal ());
    但非法操作!
      

  2.   

    将你的代码改为
    char filenamebuf[2048] = {0};        CFileDialog FileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY¦OFN_OVERWRITEPROMPT¦OFN_ALLOWMULTISELECT¦OFN_EXPLORER,"文本文件,(*.txt)¦*.txt",NULL);FileDlg.m_ofn.Flags ¦= OFN_EXPLORER;
    FileDlg.m_ofn.nMaxFile = 2048;
    FileDlg.m_ofn.lpstrFile = filenamebuf;
    ASSERT(FileDlg.DoModal ());
    就可以了。
    该字符串的第一个字符必须初始化为NULL。