您的位置:首页 > 运维架构

GetOpenFileName 函数打开多个选择文件

2013-05-20 10:14 429 查看
OPENFILENAME ofn;
TCHAR szFile[8 * MAX_PATH];
TCHAR szPath[MAX_PATH];
TCHAR szCopy[MAX_PATH];
TCHAR *pFilePath;

ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.lpstrFile = szFile;
ofn.lpstrFile[0] = TEXT('\0');
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = TEXT(".jpg\0*.jpg\0");
ofn.nFilterIndex = 2;
ofn.hwndOwner = hWnd; // 打开窗口父窗口句柄
ofn.Flags = OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;
// 由于打开对话框为多选,故必须包含OFN_ALLOWMULTISELECT
// 关闭打开对话框后,其多选的结果保存在ofn.lpstrFile中,以'\0'分割
if(GetOpenFileName(&ofn))
{
lstrcpyn(szPath, szFile, ofn.nFileOffset);
szPath[ofn.nFileOffset] = TEXT('\0');

if(szPath[_tcslen(szPath) - 1] != TEXT('\\')) // 必须加上TEXT('\\'),因为是文件目录
{
_tcscat_s(szPath, MAX_PATH, TEXT("\\"));
}

pFilePath = szFile + ofn.nFileOffset;
while( * pFilePath)
{
ZeroMemory(szCopy, sizeof(szCopy));
_tcscpy_s(szCopy, szPath); // 文件路径
_tcscat_s(szCopy, pFilePath); // 文件名

pFilePath += _tcslen(pFilePath) + 1; // 指向下一个文件名

// szCopy中保存的就是每一个文件的完整路径
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: