关于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>为什么有时候多选文件的时候选不上? CFileDialog自己有个存储选中的文件名和路径名的buffer, 不过默认只有256个字符长, 多选的时候所有的文件名和路径名连在一起如果长于256个字符, 多出的部分就会被无视..用OFN_ALLOWMULTISELECT的时候用户必须自己设立足够大的buffer空间, 然后告诉CFileDialog使用用户的buffer存储选中的文件/路径名.
参考VC++ MSDN下的CFileDialog, m_ofn, lpstrFile, nMaxFile项目. 问题已经解决,谢谢楼上的.......................
页:
[1]