谢谢

解决方案 »

  1.   

    看看CFileDialog类吧,不知道是不是你需要的。
    CFileDialog dlg(false);
    if(dlg.DoModal()==IDOK)
    {
       .....
    }
      

  2.   

    应该是 SHBrowseForFolder,查查MSDN吧,看看它的具体用法
      

  3.   

    CFileDialog 是文件打开/保存的对话框吧...
    我想要个专门选择目录的,就象VC的应用向导里那个目录选择一样谢谢
      

  4.   

    没有,楼上说的只能打开一个文件。
    你可以到www.codeproject.com或www.codeguru.com上下载一个
    不过他们都是e文网站,耐点性子吧
      

  5.   

    应该是 SHBrowseForFolder,查查MSDN吧,看看它的具体用法
      

  6.   

    TRY MY SOURCE: 
    CString m_Title;
    char pszDisplayName[MAX_PATH];
    TCHAR szPath[MAX_PATH]; HWND hwnd=this->GetSafeHwnd();
    int nCSIDL=0 ;
        LPITEMIDLIST pidlRoot = NULL;
        LPITEMIDLIST pidlSelected = NULL;
        BROWSEINFO bi = {0};
        LPMALLOC pMalloc = NULL;    SHGetMalloc(&pMalloc);    if(nCSIDL)
        {
            SHGetFolderLocation(hwnd, nCSIDL, NULL, NULL, &pidlRoot);
        }    else
        {
            pidlRoot = NULL;
        } m_Title.LoadString(IDS_SELECT_FOLD);
        bi.hwndOwner = hwnd;
        bi.pidlRoot = pidlRoot;
        bi.pszDisplayName = (LPSTR)pszDisplayName;
        bi.lpszTitle = (LPCTSTR)m_Title;
        bi.ulFlags = BIF_NEWDIALOGSTYLE |BIF_DONTGOBELOWDOMAIN ;
        bi.lpfn = NULL;
        bi.lParam = 0;    pidlSelected = SHBrowseForFolder(&bi);    if(pidlRoot)
        {
            pMalloc->Free(pidlRoot);
        } if (!SHGetPathFromIDList(pidlSelected,szPath))
    return;
    GetDlgItem(IDC_STANDARDDIR)->SetWindowText((LPCTSTR)szPath);
      

  7.   

    给你的email我发一个类给你,好用!
      

  8.   

    或者发到[email protected]来索取!
      

  9.   

    或发到[email protected]来索取。!
      

  10.   

    兄第解决了吗?
    没解决的话,我给你一个类似,Explorer的选择目录的通用对话框呵呵!Good Luck!
      

  11.   

    来个简单的:
    CComBSTR strPath = L"";
    BROWSEINFOA bi ={0}; 
    char pszDisplayName[MAX_PATH] = "\0";
    bi.hwndOwner=NULL;
    bi.pszDisplayName = pszDisplayName;
    bi.lpszTitle = "请选择.DBF文件所有的目录:";
    bi.ulFlags = BIF_RETURNONLYFSDIRS;
    LPITEMIDLIST lpIL = SHBrowseForFolder(&bi);
    if(lpIL)
    {
    SHGetPathFromIDList(lpIL,bi.pszDisplayName);
    }
    strPath = bi.pszDisplayName;如果不支持ATL, 改为如下:
    CString strPath;
    BROWSEINFOA bi ={0}; 
    char pszDisplayName[MAX_PATH] = "\0";
    bi.hwndOwner=NULL;
    bi.pszDisplayName = pszDisplayName;
    bi.lpszTitle = "请选择.DBF文件所有的目录:";
    bi.ulFlags = BIF_RETURNONLYFSDIRS;
    LPITEMIDLIST lpIL = SHBrowseForFolder(&bi);
    if(lpIL)
    {
    SHGetPathFromIDList(lpIL,bi.pszDisplayName);
    }
             else
            {
                  strPath = _T("");
             }
    strPath = bi.pszDisplayName;
      

  12.   

    CComBSTR strPath = L"";
    BROWSEINFOA bi ={0}; 
    char pszDisplayName[MAX_PATH] = "\0";
    bi.hwndOwner=NULL;
    bi.pszDisplayName = pszDisplayName;
    bi.lpszTitle = "请选择.DBF文件所有的目录:";
    bi.ulFlags = BIF_RETURNONLYFSDIRS;
    LPITEMIDLIST lpIL = SHBrowseForFolder(&bi);
    if(lpIL)
    {
    SHGetPathFromIDList(lpIL,bi.pszDisplayName);
    }
    strPath = bi.pszDisplayName;
    strPath.Append("\\EFORM_HE.DBF");
    如果不支技ATL,改为如下:
    CString strPath;
    BROWSEINFOA bi ={0}; 
    char pszDisplayName[MAX_PATH] = "\0";
    bi.hwndOwner=NULL;
    bi.pszDisplayName = pszDisplayName;
    bi.lpszTitle = "请选择.DBF文件所有的目录:";
    bi.ulFlags = BIF_RETURNONLYFSDIRS;
    LPITEMIDLIST lpIL = SHBrowseForFolder(&bi);
    if(lpIL)
    {
    SHGetPathFromIDList(lpIL,bi.pszDisplayName);
    }
    else
    {
    strPath = _T("");
    }
    strPath = bi.pszDisplayName;