ファイル選択ダイアログから、複数のファイルを選択する
BOOL xxxxxx::GetSelectFilePath( CStringArray& strAFilePath )
{
// http://www.g-ishihara.com/mfc_cd_01.htm
CString filter("Img File( *.BMP;*.TIFF )| *.BMP; *.TIFF||");
CString filePath, strBuf;
POSITION pos = NULL;
CFileDialog selDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT | OFN_NOCHANGEDIR, filter);
int err = 0;
// ファイル名リスト用メモリ確保
if (!err)
{
try
{
selDlg.GetOFN().lpstrFile = strBuf.GetBuffer(MAX_PATH *100);
selDlg.GetOFN().nMaxFile = MAX_PATH *100;
}
catch (...) {err = 1;}
}
if( selDlg.DoModal() != IDOK ){
err = 1;
return FALSE;
}
if ((pos = selDlg.GetStartPosition()) == NULL){
err = 1;
}
if (!err){
while (pos)
{
filePath = selDlg.GetNextPathName(pos);
strAFilePath.Add( filePath );
}
}
strBuf.ReleaseBuffer();
return TRUE;
}
BOOL xxxxxx::GetSelectFilePath( CStringArray& strAFilePath )
{
// http://www.g-ishihara.com/mfc_cd_01.htm
CString filter("Img File( *.BMP;*.TIFF )| *.BMP; *.TIFF||");
CString filePath, strBuf;
POSITION pos = NULL;
CFileDialog selDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_ALLOWMULTISELECT | OFN_NOCHANGEDIR, filter);
int err = 0;
// ファイル名リスト用メモリ確保
if (!err)
{
try
{
selDlg.GetOFN().lpstrFile = strBuf.GetBuffer(MAX_PATH *100);
selDlg.GetOFN().nMaxFile = MAX_PATH *100;
}
catch (...) {err = 1;}
}
if( selDlg.DoModal() != IDOK ){
err = 1;
return FALSE;
}
if ((pos = selDlg.GetStartPosition()) == NULL){
err = 1;
}
if (!err){
while (pos)
{
filePath = selDlg.GetNextPathName(pos);
strAFilePath.Add( filePath );
}
}
strBuf.ReleaseBuffer();
return TRUE;
}
PR
この記事にコメントする