char Filter[]= "Crystal Report files(*.rpt)|*.rpt|All files(*.*)|*.*||";
CRect rect;
CFileDialog m_dlg1(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
if(m_dlg1.DoModal()==IDOK)  
return;
        pathname=m_dlg1.GetPathName();
filename=m_dlg1.GetFileName();
GetDlgItem(IDC_EDIT2)->SetWindowText(pathname);我想把模拟窗口的返回值返回到ID为IDC_EDIT2的Eidr Control,可是我现在的模拟窗口能出来,但文件格式都显示不出来,只能打开文件,不能选中文件更不能生成返回值。 求大侠帮忙~~~~~~~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    if(m_dlg1.DoModal()==IDOK)   
    return;选中的时候返回了,下面就没有意义了
    改成下面的试试看
    if(m_dlg1.DoModal()!=IDOK)   
    return;
      

  2.   

    还有IF的域,去掉return,然后加{},改为如下
    if(m_dlg1.DoModal()==IDOK) 
    {  
    // return;
      pathname=m_dlg1.GetPathName();
    filename=m_dlg1.GetFileName();
    GetDlgItem(IDC_EDIT2)->SetWindowText(pathname);
    }
    return;
      

  3.   


    m_dlg1.DoModal()因为是模态的,所以这时候就阻塞住了,上面的方法就可以了,等于IDOK后就是你选择了打开,这时候会进到if里面。
      

  4.   

    char Filter[]= "Crystal Report files(*.rpt)|*.rpt|All files(*.*)|*.*||";
    CRect rect;
    CFileDialog m_dlg1(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
    if(m_dlg1.DoModal()==IDOK) 
    {  
      pathname=m_dlg1.GetPathName();
      filename=m_dlg1.GetFileName();
      GetDlgItem(IDC_EDIT2)->SetWindowText(pathname);
      UpdateData(TRUE);//更新一下
    }
      

  5.   

    你在打开文件对话框里选择all file也什么都看不到么
      

  6.   

    char Filter[]= "Crystal Report files(*.rpt)|*.rpt||All files(*.*)|*.*||";
    这样写试试
      

  7.   

    是不是工程是unicode?TCHAR Filter[]= _T("Crystal Report files(*.rpt)|*.rpt|All files(*.*)|*.*||");
      

  8.   


    TCHAR Filter[]= {_T("Crystal Report files(*.rpt)|*.rpt|All files(*.*)|*.*||")};
    CRect rect;
    CFileDialog m_dlg1(TRUE,0,0,OFN_HIDEREADONLY|OFN_FILEMUSTEXIST,(LPCTSTR)Filter,NULL);
    if(m_dlg1.DoModal()==IDOK)
    {
    GetDlgItem(IDC_EDIT2)->SetWindowText(m_dlg1.GetPathName());
    }