15.5 创建选择文件夹的对话框

2013-10-07 00:33:01 · 作者: · 浏览: 62

15.5  创建选择文件夹的对话框

MFC中,使用CFileDialog类可以创建一个对话框用来查找或者保存一个文件。那么如何创建一个选择文件夹的对话框呢?可以使用下面的函数,代码如下:

BOOL GetFolderPath(CWnd* pWnd,CString& strPath)
{
TCHAR szTitle[]       = _T("请选择对话框");
TCHAR szPath[MAX_PATH]       = _T("");
BROWSEINFO bi;

if(!pWnd)
return FALSE;

memset(&bi,0,sizeof(BROWSEINFO));
//设置父窗口句柄
bi.hwndOwner = pWnd->GetSafeHwnd();;
//设置窗口标题
bi.lpszTitle = szTitle;

LPITEMIDLIST pList = SHBrowseForFolder(&bi);
if (pList)
{
if (!SHGetPathFromIDList(pList, szPath))
{
return FALSE;
}

//防止内存泄露
IMalloc* pMalloc;
if (SHGetMalloc(&pMalloc) != NOERROR)
{
return FALSE;
}
pMalloc->Free(pList);
if (pMalloc)
pMalloc->Release();
}

//判断路径长度是否有效
if(strlen(szPath)<=0)
{
return FALSE;
}
strPath.Format(_T("%s"),szPath);
return TRUE;
}
该函数可以在基于MFC的应用程序中使用,该函数接受两个参数,一个CWnd类指针用于设定父窗口,另外一个CString对象用来保存选择的文件夹完整路径。如果没有错误发生,函数返回TRUE,否则返回FALSE。使用该函数的效果如图15.4所示。
图15.4  选择文件夹
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节