VC++ のフォルダ選択ダイアログ
VisualC++ でダイアログから フォルダを選択しようと思い 調べていたら SHBrowseForFolder
に関する情報があったので使ってみたが、UIが古い上に インプリも難しい。
CFileDialog
に似たものはないか調べていたら、、、何のことは無い、とても便利なクラスが用意されていた。
1. フォルダ選択ダイアログ CFolderPickerDialog
CFolderPickerDialog dlg;
if( dlg.DoModal() != IDOK )
return;
CStringW fileNameW = dlg.GetPathName() ;
2. おまけ
ファイル選択ダイアログのファイルフィルタ
CFileDialog
でフィルタ条件を 追加した時のサンプル
CStringW ffilter ;
ffilter = L"all files (*.*)|*.*|" ;
ffilter += L"text file (*.txt)|*.txt|" ;
ffilter += L"csv file (*.csv)|*.csv|" ;
ffilter += L"cpp source (*.cpp)|*.cpp|" ;
ffilter += L"c header (*.h)|*.h|" ;
CFileDialog dlg(TRUE, L"cpp", L"*.cpp", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, ffilter ) ;
if( dlg.DoModal() != IDOK )
return ;
CStringW fileNameW = dlg.GetPathName() ;