问一个:CFileDialog类的多重选择问题!

majiquan 2004-11-01 05:25:01
void CMultiFileDialogView::OnInitialUpdate()
{
CView::OnInitialUpdate();

// TODO: Add your specialized code here and/or call the base class

CStringList m_FileNames; // 用于保存选择的多个文件名(包括路径)
CString filter = "所有文件(*.*)|*.*|";
int count = 0;
CString s;

CFileDialog files( TRUE, NULL, NULL, OFN_EXPLORER | OFN_FILEMUSTEXIST
| OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT, filter);


char *bufferFile;
bufferFile = new char[100000];

bufferFile[0] = NULL;

files.m_ofn.lpstrFile = bufferFile;


if (files.DoModal() == IDOK)
{
POSITION pos = files.GetStartPosition();

// 每次打开时清空上一次选择的结果
if (pos != NULL && !m_FileNames.IsEmpty())
m_FileNames.RemoveAll();

// 保存新选择的那些文件名(包括路径)
while (pos != NULL)
{
CString str = files.GetNextPathName(pos);
m_FileNames.AddTail(str);
count++;
}
}

s.Format("%d",count);
MessageBox(s);
/*在小于14个文件的时候都正确,15个以上以上就不行了:(DoModel()返回初始化错误)。查了一下msdn,注意到一个要求,说,需要用户分派一个空间来保存文件,并让lpstrFile指向这个空间,结果试了一下,结果还是如此,怎么回事呢?高人指教!*/
}
...全文
99 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fanoble 2004-11-27
  • 打赏
  • 举报
回复
nMaxFile 是字节数而不是文件数
i_love_star 2004-11-26
  • 打赏
  • 举报
回复
空谷清音的答案正确但有一个小小的问题
应该是
files.m_ofn.nMaxFile = 2562;//2562 is the max
qrlvls 2004-11-26
  • 打赏
  • 举报
回复
gz
flyelf 2004-11-26
  • 打赏
  • 举报
回复
files.m_ofn.nMaxFile=100000;

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧