问题同标题,谢谢.

解决方案 »

  1.   

    是的,这个对话框是内部封装好的,你调用这个类的函数自己就会出来的。你可依找msdn上的例子看看。
      

  2.   

    CFileDialog fDlg;
    fDlg.DoModal();
      

  3.   

    呵呵,可能是我没说清楚,我的意思是说我已经写好了一个对话框了,我想在上面加一个按钮,该按钮实现的功能是和WINDOWS的"保存"按钮功能差不多,即可以选择要保存的文件放在哪个文件夹.和文件名.
    该按钮的单击函数应该怎么写呢?谢谢
      

  4.   

    在对话框资源上面加上一个按钮,用类向导给它加入一个单击的函数。
    函数体:
    {
        CFileDialog fDlg(FALSE);//如果是TRUE就是打开文件
        fDlg.DoModal();
    }
      

  5.   

    在对话框资源上面加上一个按钮,用类向导给它加入一个单击的函数。
    函数体:
    {
        CFileDialog fDlg(FALSE);//如果是TRUE就是打开文件
        fDlg.DoModal();
    }
      

  6.   

    void CTestView::OnBUTTONSelPlayFile() 
    {
    CFileDialog cf(1,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"all files(*.*)|*.*|",NULL);
    cf.m_ofn.lpstrInitialDir = szCurPath;
    if(cf.DoModal() == IDOK)
    {
    if(!m_SelectAllCh)
    {
    strcpy(szCurPlayFilePath[CurCh], cf.GetPathName());
    strcpy(szCurPlayFile[CurCh]    , cf.GetFileName());
    SetDlgItemText(IDC_EDIT_PLAYFILENAME, szCurPlayFile[CurCh]);
    UpdateData(false);
    }
    else
    {
    int nStartCh = GetDlgItemInt(IDC_EDIT_SelectAllChStart, NULL, TRUE);
    int nEndCh   = GetDlgItemInt(IDC_EDIT_SelectAllChEnd,   NULL, TRUE);
    for(int ch=nStartCh; ch<=nEndCh; ch++)
    {
    strcpy(szCurPlayFilePath[ch], cf.GetPathName());
    strcpy(szCurPlayFile[ch]    , cf.GetFileName());
    SetDlgItemText(IDC_EDIT_PLAYFILENAME, szCurPlayFile[ch]);
    //UpdateData(false);
    }
    }
    }
    }消化消化這個,妳的要求應該就全部滿足鳥~~~
      

  7.   

    CFileDialog Filedlg(TRUE,
    NULL,
    NULL,
    OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT |
    OFN_ALLOWMULTISELECT|OFN_EXPLORER, 
    "Data Files (*.bak;*.txt)|*.bak;*.txt|All files(*.*)|*.*||",
    NULL);  if(Filedlg.DoModal() == IDOK)
    {
    CString strFilePath = Filedlg.GetPathName();
    }
      

  8.   

    哈哈  我也来晚了 这么多人都会  我前些天也用到这个着  就是使用CFileDialog类
    一种情况是用来打开文件的   一种则是用来保存的
      

  9.   

    那当用户点击OK按钮,即Filedlg.DoModal() == IDOK时,空文件就已经建立好,我就直接可以往里面写数据了吗?真不好意思,刚开始学VC,好多都不懂.
      

  10.   

    virtual void Serialize(
       CArchive& ar 
    );// example for CObject::Serialize
    void CAge::Serialize( CArchive& ar )
     {
     CObject::Serialize( ar );
         if( ar.IsStoring() )
         ar << m_years;
         else
         ar >> m_years;
     }//这个东东较复杂(不像上面那么简单了),你看资料要看1天才能弄明白。
      

  11.   

    (???我楼上的帖子上面一部分怎么没有了,呵呵,我补上:)这个问题就复杂了。保存文件就涉及到序列化的问题了:serialize...
      

  12.   

    (???我楼上的帖子上面一部分怎么没有了,呵呵,我补上:)这个问题就复杂了。保存文件就涉及到序列化的问题了:serialize...
      

  13.   

    不用什么序列化
    你在你的按钮中加上如下代码就可以了
    OPENFILENAME ofn;       // common dialog box structure
    char szFile[260]={0};       // buffer for file name
    char szTitle[40]={0};

    // Initialize OPENFILENAME
    ZeroMemory(&ofn, sizeof(OPENFILENAME));
    ofn.lStructSize = sizeof(OPENFILENAME);
    ofn.hwndOwner = NULL;
    ofn.lpstrFile = szFile;
    ofn.nMaxFile = sizeof(szFile);
    ofn.lpstrFilter = "All\0*.*\0Exe\0*.exe\0";
    ofn.nFilterIndex = 1;
    ofn.lpstrFileTitle = szTitle;
    ofn.nMaxFileTitle = sizeof(szTitle);
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

    // Display the Open dialog box. 

    if (GetOpenFileName(&ofn)==FALSE) 
    {
    return;
    }
      

  14.   

    这里为什么又用OPENFILENAME?
    前面的人说用CFileDialog,我已经试出来了,他们两个有什么区别吗?