vector<CStringA> CPicProcessDlg::DoSelectFiles(
LPCTSTR lpszDefExt,
DWORD dwFlags,
LPCTSTR lpszFilter,
LPCWSTR lpstrTitle,
LPCWSTR lpstrInitialDir)
{
vector<CStringA> selectedFiles;
POSITION filePosition;
DWORD MAXFILE = 4000;
TCHAR* pc = new TCHAR[MAXFILE];
CFileDialog dlg(TRUE, lpszDefExt, NULL, dwFlags, lpszFilter, NULL);
dlg.m_ofn.nMaxFile = MAXFILE;
dlg.m_ofn.lpstrFile = pc;
dlg.m_ofn.lpstrFile[0] = NULL;
dlg.m_ofn.lpstrTitle = lpstrTitle;
dlg.m_ofn.lpstrInitialDir = lpstrInitialDir;
if (dlg.DoModal() == IDOK)
{
filePosition = dlg.GetStartPosition();
while (filePosition != NULL)
{
CStringA path;
path = dlg.GetNextPathName(filePosition);
selectedFiles.push_back(path);
}
}
delete[]pc;
return selectedFiles;
}
m_files = DoSelectFiles(
_T("*.bmp"),
OFN_ENABLESIZING | OFN_EXPLORER | OFN_ALLOWMULTISELECT | OFN_HIDEREADONLY,
_T("image files (*.bmp; *.png; *.jpg) |*.bmp; *.png; *.jpg; *.jpeg| All Files (*.*) |*.*||"),
_T("选择文件图像"),
_T(""));
if (m_files.empty())
{
AfxMessageBox(_T("图片加载失败!"));
return;
}
filename = m_files[0];
m_image = imread(filename);