//显示文件夹对话框,返回选中文件夹的路径
CString BrowseForFolder( HWND hWnd )
{
TCHAR szTitle[] = _T("Select a folder");
TCHAR szDisplayName[MAX_PATH] = _T("");
TCHAR szPath[MAX_PATH] = _T("");
BROWSEINFO bi;
bi.hwndOwner = hWnd;
bi.pidlRoot = NULL;
bi.lpszTitle = szTitle;
bi.pszDisplayName = szDisplayName;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
LPITEMIDLIST pItemIDList = SHBrowseForFolder( &bi );
if( pItemIDList )
{
SHGetPathFromIDList(pItemIDList,szPath) ;
IMalloc *pMalloc;
if( SHGetMalloc( &pMalloc ) != NOERROR )
{
TRACE( "Failed to get pointer to shells task allocator" ) ;
return szPath;
}
pMalloc->Free( pItemIDList );
if( pMalloc )
pMalloc->Release();
}
return szPath;
}
这段代码定义了一个名为BrowseForFolder的函数,用于显示文件夹对话框并返回选中文件夹的路径。函数中使用了BROWSEINFO结构体来设置对话框的相关信息,通过SHBrowseForFolder函数显示对话框,最后获取并返回选中文件夹的路径。
1970

被折叠的 条评论
为什么被折叠?



