|
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】
|