类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
得到路径,只到文件夹为止。
网友回答:
CString BrowseForFolder(HWND hWnd, CString RootPath)
{
BROWSEINFO bi;
TCHAR szDir[MAX_PATH] = {NULL};
LPITEMIDLIST pidl;
LPMALLOC pMalloc;
if (SUCCEEDED(SHGetMalloc(&pMalloc)))
{
ZeroMemory(&bi,sizeof(bi));
bi.hwndOwner = hWnd;
bi.pszDisplayName = 0;
bi.lpszTitle = 0;
if(RootPath.IsEmpty())
bi.pidlRoot = NULL;
else
bi.pidlRoot = ConvertPathToLpItemIdList(RootPath);
bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_STATUSTEXT;
bi.lpfn = BrowseCallbackProc;
pidl = SHBrowseForFolder(&bi);
if (pidl)
SHGetPathFromIDList(pidl,szDir);
pMalloc->Free(pidl);
pMalloc->Release();
}
return szDir;
}
BROWSEINFO bBinfo;
memset(&bBinfo, 0, sizeof(BROWSEINFO));
bBinfo.hwndOwner = m_hWnd;
char strTmp[MAX_PATH];
bBinfo.lpszTitle = _T("请选择安装路径:");
bBinfo.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST lpDlist;
lpDlist = SHBrowseForFolder(&bBinfo) ;
if(lpDlist != NULL)
{
SHGetPathFromIDList(lpDlist, strTmp);
TRACE(strTmp);
}
ShellExecute(NULL, _T("explore"), strTmp, NULL, NULL, SW_SHOW );