CFileDialog文件对话框

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

你可能感兴趣的:(CFileDialog文件对话框)