フォルダーを参照できるようにする次のコードを見つけました
CFileDialog od(TRUE/*bOpenFileDialog*/, NULL, NULL, OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT , NULL, NULL, 0, TRUE/*bVistaStyle*/);
IFileOpenDialog * openDlgPtr = od.GetIFileOpenDialog();
if ( openDlgPtr != NULL )
{
openDlgPtr->SetOptions(FOS_PICKFOLDERS);
openDlgPtr->Release();
}
int r = od.DoModal();
ファイルダイアログが開き、フォルダーを選択して[開く]ボタンが有効になりますが、それを押すとフォルダーが開くだけで、選択されません。キャンセルを押さない限り DoModal は返されません
MFCでフォルダを選択する方法はありますか? ありがとう
ちなみに、私はCFolderDialogについて知っています http://www.codeproject.com/Articles/2024/CFolderDialog-Selecting-Folders?msg=4497794#xx4497794xx
素敵なプロジェクトですが、USBマウントされたAndroidフォルダーを選択すると、ダイアログがOKを返さないので、修正できない限り役に立ちません
アップデート
私もこれを見つけました
BROWSEINFO bi = { 0 };
TCHAR path[MAX_PATH];
bi.lpszTitle = _T("Pick a Directory");
bi.pszDisplayName = path;
LPITEMIDLIST pidl = SHBrowseForFolder ( &bi );
if ( pidl != 0 )
{
// get the name of the folder
//_tprintf ( _T("Selected Item: %s\n"), path );
// free memory used
IMalloc * imalloc = 0;
if ( SUCCEEDED( SHGetMalloc ( &imalloc )) )
{
imalloc->Free ( pidl );
imalloc->Release ( );
}
setMobilePath(path);
}
これにより、Androidデバイスのフォルダーを選択できますが、完全なパスは返されず、あまり使用されないフォルダー名だけが返されます