梦幻神话 发表于 2005-4-21 09:43:00

关于CFileDialog的应用(多选文件).................

CString FilePath;<BR>        CFileDialog File(true,0,0,OFN_ALLOWMULTISELECT | OFN_ENABLESIZING);<BR>        if(File.DoModal() == IDCANCEL)<BR>                return;<BR>        POSITION pos = File.GetStartPosition();<BR>        while(pos != NULL)<BR>        {<BR>                FilePath = File.GetNextPathName(pos);<BR>                if(m_list.FindString(0,FilePath) == -1)<BR>                {<BR>                        m_list.AddString(FilePath);<BR>                }<BR>        }<BR>为什么有时候多选文件的时候选不上?

pandoram 发表于 2005-4-21 12:00:00

CFileDialog自己有个存储选中的文件名和路径名的buffer, 不过默认只有256个字符长, 多选的时候所有的文件名和路径名连在一起如果长于256个字符, 多出的部分就会被无视..


用OFN_ALLOWMULTISELECT的时候用户必须自己设立足够大的buffer空间, 然后告诉CFileDialog使用用户的buffer存储选中的文件/路径名.


参考VC++ MSDN下的CFileDialog, m_ofn, lpstrFile, nMaxFile项目.

梦幻神话 发表于 2005-4-21 15:27:00

问题已经解决,谢谢楼上的.......................
页: [1]
查看完整版本: 关于CFileDialog的应用(多选文件).................