CFileDialog文件对话框
CFileDialog dlg(是否是打开对话框,true打开,FALSE保存
扩展名,如static char BASED_CODE szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files *.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";
默认的文件名称,
打开或保存标示,
文件过滤,相当于匹配DIR,
父窗口指针);
CFileDialog的多选功能
CFileDialog dlg(TRUE,NULL,NULL, OFN_ALLOWMULTISELECT);
/*===================================================
* 如果要选择的文件很多,可能存在OPENFILENAME结构体的
最大文件名缓冲溢出
* 可以使用下面的代码解决
=====================================================*/
/*
#define NAMEBUF 1024;//或更大
dlg.m_ofn.lpstrFile = new TCHAR[NAMEBUF];
memset(dlg.m_ofn.lpstrFile, 0, NAMEBUF);
dlg.m_ofn.nMaxFile = NAMEBUF;
// 得到选择的文件,然后删除new 出来的内存
delete []dlg.m_ofn.lpstrFile;
*/
CStringArray arrFileName;
if(dlg.DoModal() == IDOK)
{
POSITION pos = dlg.GetStartPosition();
while(pos != NULL)
{
CString strPathName = dlg.GetNextPathName(pos);
arrFileName.Add(strPathName);
}
}
else
{
return;
}