MFC中实现选择文件夹对话框

MFC只有一个CFileDialog可以方便的选择文件,为什么不搞一个CFolderDialog呢?这里用API实现一下。

    TCHAR szPath[MAX_PATH];     //存放选择的目录路径 
    CString str;

    ZeroMemory(szPath, 
sizeof(szPath));   

    BROWSEINFO bi;   
    bi.hwndOwner 
= m_hWnd;   
    bi.pidlRoot 
= NULL;   
    bi.pszDisplayName 
= szPath;   
    bi.lpszTitle 
= _T("请选择目标目录:");   
    bi.ulFlags 
= 0;   
    bi.lpfn 
= NULL;   
    bi.lParam 
= 0;   
    bi.iImage 
= 0;   
    
//弹出选择目录对话框
    LPITEMIDLIST lp = SHBrowseForFolder(&bi);   

    
if(lp && SHGetPathFromIDList(lp, szPath))   
    
{
        str.Format(
"选择的目录为 %s",  szPath);
        AfxMessageBox(str);
    }

如果不用MFC的话,推荐使用WTL的CFileDialog和CFolderDialog。

你可能感兴趣的:(MFC中实现选择文件夹对话框)