显示选择目录对话框

wlk2002 2005-05-24 10:35:46
如何显示选择目录的对话框?就像Winamp选择播放文件夹的那个对话框,我觉得是不是有相应的对话框类?谢谢!
...全文
106 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
luolovegui 2005-05-24
  • 打赏
  • 举报
回复
CString BrowseForFolder( HWND hWnd )
{
TCHAR szTitle[] = _T("请选择一个目录:");
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;
}
jerry 2005-05-24
  • 打赏
  • 举报
回复
char buf[MAX_PATH];
ZeroMemory(buf, sizeof(buf));

BROWSEINFO bi;
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = buf;
bi.lpszTitle = "请选择MP3文件所在的目录:";
bi.ulFlags = 0;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
LPITEMIDLIST lp = SHBrowseForFolder(&bi);

if(lp && SHGetPathFromIDList(lp, buf))
{
// ......
}
else
AfxMessageBox("无效的目录,请重新选择。");

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧