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;
}