双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

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

majiquan majiquan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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指向这个空间,结果试了一下,结果还是如此,怎么回事呢?高人指教!*/
}
...全文
评论 4
收藏 已收藏
分享
返回顶部
majiquan
界面 15,976 成员 115,866 内容