问一个:CFileDialog类的多重选择问题!
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指向这个空间,结果试了一下,结果还是如此,怎么回事呢?高人指教!*/
}
{
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指向这个空间,结果试了一下,结果还是如此,怎么回事呢?高人指教!*/
}
...全文
相关推荐
CFileDialog的用法和简介
CFileDialog的用法和简介 MFC中使用CFile 类和CFileDialog 可以很简单的载入和保存文件
重载(文件对话框)CFileDialog类并自定义控件
这个工程用VS2008生成,实现了对文件对话框(CFileDialog)类的派生,可以在自己的文件对话框中加入自己想要的控件,并可定位原文件对话框位置(用ID为stc32的控件定位). 这样就可以方便地实现文件预览:比如文件预览,文本内容预览等等.
CFileDialog可以选择文件夹
CFileDialog的继承类,可以实现文件夹对话框的选择
CFileDialog的使用
对CFileDialog的初学者很有帮助,方便,简单
vc++解决CFileDialog打开路径不是当前路径的问题.zip
vc++解决CFileDialog打开路径不是当前路径的问题.zip visual c++调用打开文件对话框,但是窗口中的目录不是程序所在的当前目录,我来告诉你如何解决


界面

