如题,小弟最近写了段代码,作用就是弹出“另存为”对话框,用户输入文件名后,按照默认文件类型保存生成文件。可是现在根本无法生成相应类型的文件,确切的说能生成文件,但不是设置的文件类型。代码如下:CFileDialog SaveDialog(false,NULL,"*.mission",OFN_NOCHANGEDIR |OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"任务文件(*.mission)|*.mission||");

   if(IDOK==SaveDialog.DoModal())
     {       CString cFilePath=SaveDialog.GetPathName();       if(test(cFilePath))
          MessageBox("Save Successful!");
       else
          MessageBox("Save Failed!");    }比如,我输入一个“123”,按照我的意思应该生成文件为123.mission,但是现在生成文件123,根本没有加上自己设置的文件类型。请问高手,这个问题如何解决,急切等待中

解决方案 »

  1.   

    执行以下代码试试看:
    ================================================CFileDialog SaveDialog(FALSE , "mission");SaveDialog.DoModal();MessageBox(SaveDialog.GetFileName());================================================
    注意 CFileDialog 构造函数的第二个参数,MSDN如下说明:lpszDefExtThe default filename extension. If the user does not include an extension in the Filename edit box, the extension specified by lpszDefExt is automatically appended to the filename. If this parameter is NULL, no file extension is appended.
      

  2.   

    CFileDialog SaveDialog(false,"*.mission","*.mission",OFN_NOCHANGEDIR |OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"任务文件(*.mission)|*.mission||");

       if(IDOK==SaveDialog.DoModal())
         {       CString cFilePath=SaveDialog.GetPathName();       if(test(cFilePath))
              MessageBox("Save Successful!");
           else
              MessageBox("Save Failed!");    }
      

  3.   

    CFileDialog文件选择对话框的使用: 
    首先构造一个对象并提供相应的参数,构造函数原型如下: 
    CFileDialog::CFileDialog( 
    BOOL bOpenFileDialog, //为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框 
    LPCTSTR lpszDefExt = NULL, //默认的文件扩展名 
    LPCTSTR lpszFileName = NULL, //默认的文件名 
    DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, //设定风格 
    LPCTSTR lpszFilter = NULL, //列出可供选择的文件类型和相应的扩展名 
    CWnd* pParentWnd = NULL //父窗口句柄指针 
    ); LPCTSTR lpszFilter 参数格式如:"Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc;*.xls|All Files (*.*)|*.*||";文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。
      

  4.   

    第二个参数为默认扩展名,你设置为NULL,所以返回的文件名就没有扩展名