MFC怎样创建能同时浏览文件夹和文件的对话框
2个回答
2015-04-07 · 知道合伙人互联网行家
关注
展开全部
BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO)); //指定存放文件的默认文件夹路径
bi.lpszTitle="请选择文件夹"; //添加提示语句
bi.ulFlags=0x0040 | BIF_EDITBOX; //添加“新建文件夹项”
LPMALLOC pMalloc;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//以默认路径打开浏览文件夹对话框
TCHAR * savepath = new TCHAR[MAX_PATH];
CString savepath2="";
if(pidl != NULL)
{
SHGetPathFromIDList(pidl,savepath);//把文件夹路径存放在savepath中
savepath2.Format(_T("%s"),savepath);
savepath2=savepath2+"\\";//在路径后增加斜杠
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//网上说pidl指向的对象用完应该释放
{
pMalloc->Free(pidl);
pMalloc->Release();
}
} MessageBox(savepath2);//显示所选文件夹路径
这是修改后的代码,添加了第三四行,亲测可用
ZeroMemory(&bi,sizeof(BROWSEINFO)); //指定存放文件的默认文件夹路径
bi.lpszTitle="请选择文件夹"; //添加提示语句
bi.ulFlags=0x0040 | BIF_EDITBOX; //添加“新建文件夹项”
LPMALLOC pMalloc;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);//以默认路径打开浏览文件夹对话框
TCHAR * savepath = new TCHAR[MAX_PATH];
CString savepath2="";
if(pidl != NULL)
{
SHGetPathFromIDList(pidl,savepath);//把文件夹路径存放在savepath中
savepath2.Format(_T("%s"),savepath);
savepath2=savepath2+"\\";//在路径后增加斜杠
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//网上说pidl指向的对象用完应该释放
{
pMalloc->Free(pidl);
pMalloc->Release();
}
} MessageBox(savepath2);//显示所选文件夹路径
这是修改后的代码,添加了第三四行,亲测可用
追问
怎么还不能打开文件?大哥,求教
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询