浏览打开获取文件夹路径

来源:互联网 发布:数据库组件是什么 编辑:程序博客网 时间:2024/05/19 19:16
众所周知,CFileDialog 只能选择要打开的文件而不能选择要打开的文件夹,下面介绍一种像CFileDialog 选择文件一样选择文件夹的方法,代码如下:
 
//////////////////////////////////////////////////////////////////////////
//功能:  像CFileDialog浏览打开文件一样打开文件夹
//参数:
//        pParent:显示浏览窗口的父窗口句柄
//        wndTitle:浏览窗口显示的标题
//Example:
//        CString path = GetBrowseFolder(this->m_hWnd,"请选择要打开的目录");
//////////////////////////////////////////////////////////////////////////
CString GetBrowseFolder(HWNDpParent,CStringwndTitle)
{
    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);
}
原创粉丝点击