MFC如何实现文件夹选择对话框?
文章目录
今天写一个程序,其中一个功能是用对话框来选择一个文件夹的路径。可是以前常用的CFileDialog必须指定到文件,选择一个文件夹只能继续打开而不能返回这个路径,CFileDialog貌视也没有参数可以弄成选择文件夹的式样。上网找了找,CSDN里有人提供下面这个函数的用法:
CString ShowSelectDirectoryDlg(const CString & strDlgTitle)
{
char szDir[MAX_PATH];
BROWSEINFO bi;
ITEMIDLIST *pidl;bi.hwndOwner = this->m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szDir;
bi.lpszTitle = strDlgTitle;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;pidl = SHBrowseForFolder(&bi);
if(pidl == NULL)
return _T(“”);if(!SHGetPathFromIDList(pidl, szDir))
return _T(“”);return CString(szDir);
}
这个函数的传入参数strDlgTitle,就是选择文件夹对话框的标题栏名称。只需要模拟这个函数的写法,添加代码到特定的消息响应函数里去就可以了。
文章作者 cookwhy
上次更新 2009-06-30