使用vc打开目录选择对话框
来源:互联网 发布:编程培训机构logo 编辑:程序博客网 时间:2024/04/27 14:46
该函数原型为:
LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);
其中LPBROWSEINFO为BROWSEINFO结构的指针。
BROWSEINFO结构如下:typedef struct _browseinfo {
HWND hwndOwner;
LPCITEMIDLIST pidlRoot;
LPSTR pszDisplayName;
LPCSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO;
调用例子如下:
CString GetSaveFolder()
{
CString sFolderPath;
BROWSEINFO bi;
TCHAR Buffer[MAX_PATH];
LPITEMIDLIST pIDList;
LPMALLOC pMalloc;
::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (!SUCCEEDED(::SHGetMalloc(&pMalloc)))
{
return sFolderPath;
}
ZeroMemory(&bi,sizeof(bi));
//初始化入口参数bi开始
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = Buffer;
bi.lpszTitle = _T("请选择招标文件的保存路径:");
bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = 0;
//初始化入口参数bi结束
pIDList= SHBrowseForFolder(&bi); //调用显示选择对话框
if(pIDList != NULL)
{
//取得文件夹路径到Buffer里
if(SHGetPathFromIDList(pIDList, Buffer))
{
sFolderPath = Buffer;
}
else
{
sFolderPath = _T("");
}
pMalloc->Free(pIDList);
}
pMalloc->Release();
return sFolderPath;
}
注意:其中BROWSEINFO的ulFlags的值设为BIF_NEWDIALOGSTYLE,可以使弹出的目录选择对话框允许用户交互,
能够添加文件夹等功能。
参考文章:VC打开目录选择对话框
- 使用vc打开目录选择对话框
- VC打开一个目录选择对话框,并设置初始化目录
- VC打开一个目录选择对话框,并设置初始化目录
- VC中目录选择对话框的使用
- vc 打开目录对话框
- VC 打开目录对话框
- VC 打开目录对话框
- VC 打开目录对话框
- VC++选择目录对话框
- VC++中打开保存目录选择对话框操作
- VC中选择文件目录和打开文件对话框
- VC++中的目录选择对话框
- VC中选择目录对话框
- VC中选择目录对话框
- VC 文件对话框 目录选择
- 打开文件对话框与目录选择对话框
- 打开文件对话框与目录选择对话框
- MFC 选择文件对话框/打开目录对话框
- 南京师范大学2011年GIS考研试题
- OpenGL关照设置二
- MySQL数据库性能优化之缓存参数优化
- mysql运维
- 在日本做开发的日子(工作篇 序)
- 使用vc打开目录选择对话框
- Tesseract-OCR引擎 入门
- 虚拟机stack全解析
- lock锁和monitor.enter锁
- 2013年1月10日VC++学习笔记
- login shell vs non-login shell
- Ubuntu 10.10 mysql的安装,配置环境,基本用法
- 南京师范大学2010年GIS考研试题
- std::upper_bound 的通用class Predicate