想得到一个文件夹的路径,请问用什么控件? 我想在程序中可以选择一个路径来存储文件,用什么控件或者类!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BROWSEINFO bi; char buffer[MAX_PATH]; ZeroMemory(buffer, MAX_PATH); bi.hwndOwner = GetSafeHwnd(); bi.pidlRoot = NULL; bi.pszDisplayName = buffer; bi.lpszTitle = "选择一个文件夹"; bi.ulFlags = BIF_EDITBOX; bi.lpfn = NULL; bi.lParam = 0; bi.iImage = 0; LPITEMIDLIST pList = NULL; if ((pList = SHBrowseForFolder(&bi)) != NULL) { char path[MAX_PATH]; ZeroMemory(path, MAX_PATH); SHGetPathFromIDList(pList, path); //path就是選中的目錄 } 老兄,可是我看不懂你写的代码啊,我是想点一下“浏览”按钮就弹出选择路径的对话框,就象CFileDialog类那样啊 sorry,你的直接可以用,呵呵,不过我想问,有没有那种象XP那样,有“新建文件夹”按钮的? http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c4999/http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c1885/http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c2025/http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c2019/ 一樓的弟兄說的不錯啊!!下面給出我的代碼:void CWebProtectDlg::OnSellogpath() { char Name[MAX_PATH]; LPITEMIDLIST pItemList; BROWSEINFO bi; bi.hwndOwner = this->m_hWnd; bi.lpszTitle = "请选择日志文件路径"; bi.pidlRoot = NULL; bi.pszDisplayName = Name; bi.ulFlags = BIF_RETURNONLYFSDIRS;// | BIF_NONEWFOLDERBUTTON; bi.lpfn = NULL; bi.lParam = NULL; pItemList = SHBrowseForFolder(&bi); if(pItemList)//User pressed OK. { SHGetPathFromIDList(pItemList, Name); //取得文件夹路径到Name里 m_LogPath = Name;//将路径保存在一个CString对象里 } LPMALLOC lpMalloc; if(FAILED(SHGetMalloc(&lpMalloc))) return; //释放内存 lpMalloc->Free(pItemList); lpMalloc->Release(); UpdateData(FALSE);}以上我代碼,是我從我從寫過的一個小東東裏面截出來的。測試是完全沒有問題的 如何保存一个DC 求助,下面这段程序有什么用?(是不是一个 库的头文件),谢谢2! VC工程编译的问题 mfc总结 50分求 关于连接外网的问题 有跳了后悔的吗? 如何屏蔽热键啊?包括ALT+CTRL+DELETE??????????? VC下面如何做在DOS下的绘图程序。要包括什么头文件呀? 帮忙??? vc中怎么发送回车键消息!!! 求救!!我的msdn6.0现在出现如下情况,有的链接不能使用,如果一点的话就提示运行时间错误,重装了很多次,问题依旧!求各位大虾帮忙! 如何生成日志文件?急……
char buffer[MAX_PATH];
ZeroMemory(buffer, MAX_PATH);
bi.hwndOwner = GetSafeHwnd();
bi.pidlRoot = NULL;
bi.pszDisplayName = buffer; bi.lpszTitle = "选择一个文件夹";
bi.ulFlags = BIF_EDITBOX;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0; LPITEMIDLIST pList = NULL;
if ((pList = SHBrowseForFolder(&bi)) != NULL)
{
char path[MAX_PATH];
ZeroMemory(path, MAX_PATH);
SHGetPathFromIDList(pList, path);
//path就是選中的目錄
}
http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c1885/
http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c2025/
http://www.codeguru.com/Cpp/W-D/dislog/dialogforselectingfolders/article.php/c2019/
下面給出我的代碼:
void CWebProtectDlg::OnSellogpath()
{
char Name[MAX_PATH];
LPITEMIDLIST pItemList;
BROWSEINFO bi;
bi.hwndOwner = this->m_hWnd;
bi.lpszTitle = "请选择日志文件路径";
bi.pidlRoot = NULL;
bi.pszDisplayName = Name;
bi.ulFlags = BIF_RETURNONLYFSDIRS;// | BIF_NONEWFOLDERBUTTON;
bi.lpfn = NULL;
bi.lParam = NULL;
pItemList = SHBrowseForFolder(&bi);
if(pItemList)//User pressed OK.
{
SHGetPathFromIDList(pItemList, Name);
//取得文件夹路径到Name里
m_LogPath = Name;//将路径保存在一个CString对象里
}
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc))) return;
//释放内存
lpMalloc->Free(pItemList);
lpMalloc->Release();
UpdateData(FALSE);
}以上我代碼,是我從我從寫過的一個小東東裏面截出來的。
測試是完全沒有問題的