单选文件夹的时候,对话框的文件名控件并不显示这个文件夹,只有选中的是文件时才显示所选择的文件名.当你选中文件夹时
CString CFileDialog::GetFileName( ) const;
返回的是不是一个空的字符串?

解决方案 »

  1.   

    to joke100:
      只有DoModal后才能返回吧,跟作者的好像...
      

  2.   

    当你选中文件夹时
    CString CFileDialog::GetFileName( ) const;
    返回的不是空字符串。
      

  3.   

    自己从CFileDialog中派生一个类(这里我叫CMyDlg)
    重载两个析函数:
    virtual void OnFolderChange( );
    virtual void OnFileNameChange( );加入代码:
    void CMyDlg::OnFolderChange( )
    {
    CString str=GetPathName();
    HWND hWnd=FindWindowEx(GetParent()->m_hWnd,NULL,"Edit",NULL);
    ::SetWindowText(hWnd,"");
    }void CMyDlg::OnFileNameChange( )
    {
    static CString OldStr;
    CString str=GetFileName();
    HWND hWnd=FindWindowEx(GetParent()->m_hWnd,NULL,"Edit",NULL);
    if(OldStr==str)
    ::SetWindowText(hWnd,"");
    else
    ::SetWindowText(hWnd,str); OldStr=str;
    }
    这样只要在文件名一栏中是空的没说明是文件夹了。
    你要做什么就做什么吧!