您的位置:首页 > 编程语言 > C语言/C++

VC++ 目录选择对话框

2014-03-25 10:36 211 查看
打开目录选择对话框要使用到API函数SHBrowseForFolder来实现

函数原型为:

LPITEMIDLIST SHBrowseForFolder(LPBROWSEINFO lpbi);

其中LPBROWSEINFO结构如下:

typedef struct _browseinfo
{
HWND hwndOwner;
LPCITEMIDLIST pidlRoot;
LPSTR pszDisplayName;
LPCSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFO;


使用例子如下:

void CConvertDlg::OnBnClickedBtnopen()
{
// TODO: 在此添加控件通知处理程序代码
BROWSEINFO bi;
TCHAR szPath[MAX_PATH];

bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = szPath; //此参数如为NULL则不能显示对话框
bi.lpszTitle = "选择一个目录";
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = 0;   //初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)
{
SHGetPathFromIDList(pIDList, path);
//取得文件夹路径到path里
m_strPath = szPath;//将路径保存在一个CString对象里,m_strPathName为编辑框绑定的一个值类

//型变量
}
UpdateData(FALSE);    //将选择的文件夹路径显示在编辑框中
}


参考:百度经验
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: