MFC 如何在浏览文件夹对话框增加“新建文件夹”并返回所选路径?
我在自学c++,还是菜鸟,我现在用SHBrowseForFolde调用浏览文件夹对话框,并能把路径存在savepath2中。如果我想在这基础上增加“新建文件夹”功能,并返...
我在自学c++,还是菜鸟,我现在用SHBrowseForFolde调用浏览文件夹对话框,并能把路径存在savepath2中。如果我想在这基础上增加“新建文件夹”功能,并返回路径,以下代码该作哪些改动?如果要在其他地方改动,希望能说具体一点,因为我是菜鸟。听网上说增加一个参数就可以,可是我看了一些代码好复杂,弄了半天都没弄懂。,谢谢各位了!void CMyDlg::OnOK() { BROWSEINFO bi; ZeroMemory(&bi,sizeof(BROWSEINFO));//指定存放文件的默认文件夹路径 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);//显示所选文件夹路径}
展开
展开全部
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);//显示所选文件夹路径
这是修改后的代码,添加了第三四行,亲测可用
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询