用CFileDialog是不能实现的, 试用下面的代码.
#include <shlobj.h> CString strFilePath;
TCHAR pszBuffer[_MAX_PATH];
BROWSEINFO bi;  LPITEMIDLIST pidl;
bi.hwndOwner = NULL;
bi.pidlRoot = NULL;
bi.pszDisplayName = pszBuffer;
bi.lpszTitle = _T("&Ntilde;&iexcl;&Ocirc;&ntilde;&sup2;&yen;&sup3;&ouml;±í&Acirc;·&frac34;&para;");
bi.ulFlags = BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
if((pidl = SHBrowseForFolder(&bi)) != NULL)
{
if(SHGetPathFromIDList(pidl, pszBuffer))
{
CString strTemp(pszBuffer);   strFilePath = strTemp;
if (strFilePath.GetLength() <= 1) 
{
}
else if (strFilePath.Right(1) != _T("\\")) 
strFilePath += _T("\\");
}
}
GetDlgItem(IDC_STATIC_PATH)->SetWindowText(strFilePath);
                                                  sad_pacific

解决方案 »

  1.   

    sad_pacific,非常感谢你提供的方法,我已试过了,非常好用只是我看到有的软件中确实可以通过类似于CFileDialog的风格来选择路径,所以我想再看看,或许其他人会知道.
      

  2.   

    使用CFileDialog后,将文件名去掉,剩下的就是路径
      

  3.   

    cqjiang兄,问题是CFileDialog必须要选择一个文件才能按OK.
      

  4.   

    sad_pacific兄:
    如何改变这个对话框的大小及标题?
    多谢!
      

  5.   

    Lansie:       你好, 你说的是Win3.1时代,CFileDialog与path select的风格类似.
           此对话框无法改变大小, 但可改变标题.
           bi.lpszTitle = _T("我的标题");
           ...
           (另, 以上只是我个人所知, 不表示一定是那样)
                                                     sad Pacific