Hi,
我想从一个弹出的窗口中选择一个目录,在vc中如何实现这一"浏览文件夹"的功能?
谢谢回答有分!

解决方案 »

  1.   

    http://www.codeguru.com/Cpp/W-P/files/browserfunctionsdialogs/article.php/c4465/
      

  2.   

    http://www.vckbase.com/code/listcode.asp?mclsid=5&sclsid=501
      

  3.   

    To hongyongzeng(任我行) :
    谢谢!能否再详细一点?
      

  4.   

    BROWSEINFO  stBrowseInfo;
    ITEMIDLIST *pstItemIdList; 
    TCHAR        acFilePath[_MAX_PATH]; // open select directory dialog
    memset(&stBrowseInfo, 0, sizeof(BROWSEINFO));
    stBrowseInfo.ulFlags = BIF_RETURNONLYFSDIRS;  pstItemIdList = SHBrowseForFolder(&stBrowseInfo);
    SHGetPathFromIDList(pstItemIdList, acFilePath);
      

  5.   

    char* CFffDlg::BrowseForFolder(long nBeginAt,LPCSTR lpszTitle)
    //浏览目录。nBeginAt:初始位置id(如:CSIDL_DRIVES),lpszTitle浏览时的标题

    static char aa[225];//CSIDL_DESKTOPDIRECTORY
    LPITEMIDLIST pidlBeginAt, pidlDestination ;
    SHGetSpecialFolderLocation(HWND_DESKTOP, nBeginAt, &pidlBeginAt) ;// 取得开始菜单或桌面的PIDL
    BROWSEINFO BrInfo;
    ZeroMemory(&BrInfo, sizeof(BrInfo));
    BrInfo.hwndOwner = HWND_DESKTOP;//可不用
    BrInfo.pidlRoot = pidlBeginAt;
    BrInfo.lpszTitle = lpszTitle;
    pidlDestination= SHBrowseForFolder(&BrInfo);//浏览文件夹
    if(NULL == pidlDestination)//用户选择了取消按钮
    return "";
    SHGetPathFromIDList(pidlDestination,aa);// 把PIDL转换为路径名 
    return aa;
    }