本博文源于笔者正在编写的一个mfc程序,mfc需要打开目录,然后将目录保存到编辑框里。想法就是这样子的。源码如下:
void Ctest702Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
BROWSEINFO bi;
TCHAR Buffer[512];
CString dir;
//初始化入口参数bi开始
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = Buffer;//此参数如为NULL则不能显示对话框
bi.lpszTitle = _T("选择输出目录");
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.iImage = 0;
//初始化入口参数bi结束
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)//选择到路径(即:点了确定按钮)
{
//取得文件夹路径到Buffer里
SHGetPathFromIDList(pIDList, Buffer);
dir = Buffer;
}
else//取消选择
{
return ;
}
m_LPathTxt.SetWindowText(dir);
}
其中m_LPathTxt是编辑框,读者可以直接复制,然后修改m_LPathTxt这处代码即可。