众所周知,CFileDialog 只能选择要打开的文件而不能选择要打开的文件夹,下面介绍一种像CFileDialog 选择文件一样选择文件夹的方法,代码如下:
//
//功能: 像CFileDialog浏览打开文件一样打开文件夹
//参数:
// pParent:显示浏览窗口的父窗口句柄
// wndTitle:浏览窗口显示的标题
//Example:
// CString path = GetBrowseFolder(this->m_hWnd,"请选择要打开的目录");
//
CString GetBrowseFolder( HWND pParent , CString wndTitle)
{
char
szDir
[
MAX_PATH
]
=
{
0
};
BROWSEINFO
bi;
ITEMIDLIST
*
pidl
=
NULL;
bi
.
hwndOwner
=
pParent;
bi
.
pidlRoot
=
NULL;
bi
.
pszDisplayName
=
szDir;
bi
.
lpszTitle
=
wndTitle;
bi
.
ulFlags
=
BIF_RETURNONLYFSDIRS;
bi
.
lpfn
=
NULL;
bi
.
lParam
=
0;
bi
.
iImage
=
0;
pidl
=
SHBrowseForFolder(
&
bi);
if(
pidl
==
NULL)
return
"";
if(
!
SHGetPathFromIDList(
pidl
,
szDir))
return
"";
return
CString(
szDir);
}
//功能:
//参数:
//
//
//Example:
//
//
CString GetBrowseFolder( HWND pParent , CString wndTitle)
{
}