用CFileDialog(或其子类)实现获取文件夹的路径,我是说当
该 对话框 打开时,看不到任何一个文件,只有文件夹,并且当用户选中一个文件夹时,然后单击ok时,能返回该路径~ ~ 容易吧,以前看到过,淡忘了,不知如何写。

解决方案 »

  1.   

    void AfxSelectDirDlg(char Dir[256]) 

         BROWSEINFO bi; 
         ITEMIDLIST *pidl; 
         
         bi.hwndOwner      = NULL; 
         bi.pidlRoot       = NULL; 
         bi.pszDisplayName = Dir; 
         bi.lpszTitle = "Select a directory"; 
         bi.ulFlags   = BIF_RETURNONLYFSDIRS; 
         bi.lpfn      = NULL; 
         bi.lParam    = 0; 
         bi.iImage    = 0; 
         
         pidl = SHBrowseForFolder( &bi ); 
         
     if ( pidl == NULL ) 
     Dir[0] = '\0'; 
         
     if (!SHGetPathFromIDList( pidl, Dir )) 
           Dir[0] = '\0'; 
    }
      

  2.   

    pidl = SHBrowseForFolder( &bi ); 
    我看了以前的程序,是这楼上所写的,可是,一编译,出现非法出错.....shell32有问题,不知道是什么原因,....能解决一下吗???谢谢
      

  3.   

    树形控件及列表控件
    获得当前路径
    CTreeList:GetCurPath()
      

  4.   

    不给加分!
    天哪,又要自问自答了,真有些变态。这道题也自我解决了。(刚刚成功!)
    1。继承CFileDialog -> CMyFileDialog
    其中的m_ofn.lpfilter="Folder \0 \0";//屏蔽一切文件,只露文件夹
          
    重载函数: void CMyFileDialog::OnFolderChange()
    {
    CString str=CFileDialog::GetFolderPath();
    CFileDialog::OnFolderChange();
    }
    解决,闪人!
    自己加分,变态啊~