CFileDialog 支持文件多选 自定义filter

来源:互联网 发布:数据分析师的岗位要求 编辑:程序博客网 时间:2024/06/06 04:29

使用类CFileDialog支持文件多选代码如下:

void mutiSel()

{

TCHAR szFilters[]= _T("avi files (*.avi)|*.avi|mpg files (*.mpg;*.mp4)|*.mpg;*.mp4|All Files (*.*)|*.*||");
CFileDialog dlg(TRUE, _T("avi"), _T("*.avi"),OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, szFilters);

CString fileName;
const int c_cMaxFiles = 100;
const int c_cbBuffSize = (c_cMaxFiles * (MAX_PATH + 1)) + 1;
dlg.GetOFN().lpstrFile = fileName.GetBuffer(c_cbBuffSize);
dlg.GetOFN().nMaxFile = c_cbBuffSize;
dlg.GetOFN().Flags |= OFN_ALLOWMULTISELECT;
if (dlg.DoModal()==IDOK)
{
std::vector<CString> vVideoFileLst;
POSITION pos = dlg.GetStartPosition();  
while (pos != NULL)  
{  
CString szPathName = dlg.GetNextPathName(pos);
vVideoFileLst.push_back(szPathName);
if (vVideoFileLst.size()>c_cMaxFiles)
{
fileName.ReleaseBuffer();
return;
}
}

fileName.ReleaseBuffer();

}


原创粉丝点击