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

2014-10-30 16:30:06 · 作者: · 浏览: 69

  前言


  关键字: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"无效的目录,请重新选择");