[MFC]设置文件夹目录时遇到的问题

简介:

前言

  关键字:SHBrowseForFolder、SHGetPathFromIDList 
 

  问题很菜,在网上找了一段想当然的代码改吧改吧,结果报错了,甚至都不知道错哪里,调试也没法跟踪。
 

 

正文

  一、问题代码

    CString szPath;
    BROWSEINFO bi;   
    bi.hwndOwner 
=  m_hWnd;
    bi.pidlRoot 
=  NULL;   
    bi.pszDisplayName 
=  szPath.GetBuffer();   
    bi.lpszTitle 
= L " 请选择目录: " ;   
    bi.ulFlags 
=  BIF_RETURNFSANCESTORS  |  BIF_RETURNONLYFSDIRS; 
    bi.lpfn 
=  NULL;   
    bi.lParam 
=   0 ;   
    bi.iImage 
=   0 ;   
    
// 弹出选择目录对话框
    LPITEMIDLIST lp  =  SHBrowseForFolder( & bi);   
    
if (lp  &&  SHGetPathFromIDList(lp, szPath.GetBuffer()))   
        AfxMessageBox(szPath);
    
else    
        AfxMessageBox(L
" 无效的目录,请重新选择 " );


 

  二、报错截图

 

 

三、解决错误

    TCHAR szPath[MAX_PATH];
    BROWSEINFO bi;   
    bi.hwndOwner  =  m_hWnd;
    bi.pidlRoot  =  NULL;   
    bi.pszDisplayName  =  szPath;   
    bi.lpszTitle  = L " 请选择目录: " ;   
    bi.ulFlags  =  BIF_RETURNFSANCESTORS  |  BIF_RETURNONLYFSDIRS; 
    bi.lpfn  =  NULL;   
    bi.lParam  =   0 ;   
    bi.iImage  =   0 ;   
    
// 弹出选择目录对话框
    LPITEMIDLIST lp  =  SHBrowseForFolder( & bi);   
    
if (lp  &&  SHGetPathFromIDList(lp, szPath))   
        AfxMessageBox(CString(szPath));
    
else    
        AfxMessageBox(L " 无效的目录,请重新选择 " );

    说明:把CString改成了TCHAR数组。

 

结束语
 

  折腾很久,搜了老半天,最后把修改前的代码和修改后的代码比较了一下,才猜想出来。
 


本文转自over140 51CTO博客,原文链接:http://blog.51cto.com/over140/583030,如需转载请自行联系原作者

相关文章
|
7月前
win11查看文件/文件夹所使用的程序
win11查看文件/文件夹所使用的程序
60 0
|
7月前
|
C#
C# Winform 选择文件夹和选择文件
C# Winform 选择文件夹和选择文件
89 0
VSS中上传一个文件夹(包括子文件夹和文件)
VSS中上传一个文件夹(包括子文件夹和文件)
|
前端开发 C++
【Qt】实现显示指定路径目录结构
使用 Qt 的 QTreeView 显示指定路径下的目录结构
542 0
|
Python
Pycharm 在文件夹目录下,对文件重命名,右键运行和文件名不一致问题
在解答学员问题的时候!想着这个问题或许是大部分同学都会遇到的一个问题,于是在此记录!也是想着给一些学员解答疑惑。
Pycharm 在文件夹目录下,对文件重命名,右键运行和文件名不一致问题
MFC删除某个文件夹下的所有目录文件
1、该函数是删除文件夹下的所有文件 http://bbs.csdn.net/topics/390448664 BOOL CMainFrame::DeleteDirectory(con...
1848 0
|
Windows
win10新建文件夹重命名卡死完美解决办法
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79395700 win10的用户不少都遇到了新建文件夹重命名便会卡死好久,恢复后文件夹的重命名依然没成功。
4968 0