如何弹出选择目录对话框? 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LPMALLOC lpMalloc; if(::SHGetMalloc(&lpMalloc)!=NOERROR) { AfxMessageBox("选择下载目录操作出错"); return; } char szDisplayName[_MAX_PATH]; char szBuffer[_MAX_PATH]; BROWSEINFO browseInfo; browseInfo.hwndOwner=this->m_hWnd; browseInfo.pidlRoot=NULL; browseInfo.pszDisplayName=szDisplayName; browseInfo.lpszTitle="请选择下载文件的存储路径"; browseInfo.ulFlags=BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS; browseInfo.lpfn=NULL; browseInfo.lParam=0; LPITEMIDLIST lpItemIDList; if((lpItemIDList=::SHBrowseForFolder(&browseInfo))!=NULL) { if(::SHGetPathFromIDList(lpItemIDList,szBuffer)) { if(szBuffer[0]=='\0') { AfxMessageBox("Fail to get directory",MB_ICONSTOP|MB_OK); return; } DownFileDirectory=szBuffer; } else { AfxMessageBox("Fail to get directory!",MB_ICONSTOP|MB_OK); return; } lpMalloc->Free(lpItemIDList); lpMalloc->Release(); } CString strMsg; strMsg.Format("选择目录为:%s",DownFileDirectory); AfxMessageBox(strMsg); BROWSEINFO bi;ZeroMemory(&bi,sizeof(bi));SHBrowseForFolder(&bi); CString _BrowseForFolder(HWND hwnd = NULL, LPCTSTR lpszTitle = "请选择目录"){ char buf[MAX_PATH] = {0}; BROWSEINFO bi; memset(&bi, 0, sizeof(BROWSEINFO)); bi.hwndOwner = hwnd; bi.lpszTitle = lpszTitle; bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX|0x0040; LPITEMIDLIST pidl = SHBrowseForFolder(&bi); if(pidl) { LPMALLOC pMalloc; SHGetMalloc(&pMalloc); SHGetPathFromIDList(pidl, buf); pMalloc->Free(pidl); pMalloc->Release(); } return buf;} 如何获得MFC程序子窗口句柄? 送分100分:串口数据发送和接收中的问题 修改二级菜单问题 用ffmpeg编码后的音频为什么播放速度会加快 画直线时橡皮筋弄得客户区闪烁不停,怎么改善? 怎么在远程函数调用的问题 单文档的标题怎么改呀?高手指点:) 应如何取得位图句柄?如何实现类似windows中的注释条?急! 关于动态链接库和静态链接库 请问谁有列车时刻表的最新数据库,能发送一份给我么?可好? 为什么文件删不掉,急!急!急!在线等待 装VC后怎么解决上网出现错误的问题?
if(::SHGetMalloc(&lpMalloc)!=NOERROR)
{
AfxMessageBox("选择下载目录操作出错");
return;
}
char szDisplayName[_MAX_PATH];
char szBuffer[_MAX_PATH];
BROWSEINFO browseInfo;
browseInfo.hwndOwner=this->m_hWnd;
browseInfo.pidlRoot=NULL;
browseInfo.pszDisplayName=szDisplayName;
browseInfo.lpszTitle="请选择下载文件的存储路径";
browseInfo.ulFlags=BIF_RETURNFSANCESTORS|BIF_RETURNONLYFSDIRS;
browseInfo.lpfn=NULL;
browseInfo.lParam=0;
LPITEMIDLIST lpItemIDList;
if((lpItemIDList=::SHBrowseForFolder(&browseInfo))!=NULL)
{
if(::SHGetPathFromIDList(lpItemIDList,szBuffer))
{
if(szBuffer[0]=='\0')
{
AfxMessageBox("Fail to get directory",MB_ICONSTOP|MB_OK);
return;
}
DownFileDirectory=szBuffer;
}
else
{
AfxMessageBox("Fail to get directory!",MB_ICONSTOP|MB_OK);
return;
}
lpMalloc->Free(lpItemIDList);
lpMalloc->Release();
}
CString strMsg;
strMsg.Format("选择目录为:%s",DownFileDirectory);
AfxMessageBox(strMsg);
ZeroMemory(&bi,sizeof(bi));
SHBrowseForFolder(&bi);
{
char buf[MAX_PATH] = {0};
BROWSEINFO bi;
memset(&bi, 0, sizeof(BROWSEINFO));
bi.hwndOwner = hwnd;
bi.lpszTitle = lpszTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS|BIF_EDITBOX|0x0040;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
if(pidl)
{
LPMALLOC pMalloc;
SHGetMalloc(&pMalloc);
SHGetPathFromIDList(pidl, buf);
pMalloc->Free(pidl);
pMalloc->Release();
}
return buf;
}