近日我程序里有一段功能,是打开一个OpenFileDialg ,然后选择多个文件
if(pFDlg->DoModal()==IDOK)
{
....通过循环把 文件名 放到CString str[100]里
}
问题出现在当我一次多选,大概超过20个文件时,程序不走IDOK
于是我跟踪中到MFC里发现 OPENFILENAME 结构一个参数DWORD nMaxFile的值
衡为260,(我发现在Openfile对话框里,"文件名"里字符长度超过了260)
也就是说LPTSTR lpstrFile的长度不能超过260吗?
请问一次最多能打开多少个文件?怎样设置? 谢谢各位参与!!!
if(pFDlg->DoModal()==IDOK)
{
....通过循环把 文件名 放到CString str[100]里
}
问题出现在当我一次多选,大概超过20个文件时,程序不走IDOK
于是我跟踪中到MFC里发现 OPENFILENAME 结构一个参数DWORD nMaxFile的值
衡为260,(我发现在Openfile对话框里,"文件名"里字符长度超过了260)
也就是说LPTSTR lpstrFile的长度不能超过260吗?
请问一次最多能打开多少个文件?怎样设置? 谢谢各位参与!!!
OFN_LONGNAMES
For old-style dialog boxes, this flag causes the dialog box to use long file names. If this flag is not specified, or if the OFN_ALLOWMULTISELECT flag is also set, old-style dialog boxes use short file names (8.3 format) for file names with spaces.
Explorer-style dialog boxes ignore this flag and always display long file names.
另外,你可以先让其返回所选的文件名称,然后用程序循环打开(试试看)。
还不行吗?看这里http://www.yesky.com/20020429/1609421.shtml
有你的答案!