我做了一个对话框
输入了一个数据:
比如姓名:张三
然后点击确定后
弹出保存对话框:
   UpdateData(TRUE);
   CFileDialog dlg(FALSE,_T("TXT"),_T("*.TXT"),OFN_HIDEREADONLY, _T("文本文件(*.TXT)|*.TXT|"));
   if(IDOK==dlg.DoModal())
   {
   }此时我想的是自动生成文本文件a.txt,然后数据在文本文件a.txt中

解决方案 »

  1.   

    如下所示
    假设输入框对于的变量是m_name,CString类型;
             UpdateData(TRUE);
       CFileDialog dlg(FALSE,_T("TXT"),_T("*.TXT"),OFN_HIDEREADONLY, _T("文本文件(*.TXT)|*.TXT|"));
       if(IDOK==dlg.DoModal())
       {
             CString str=dlg.GetPathName();
             char *FileName="a.txt";
    char getstr[255];
    sprintf(getstr,"%s\\%s",str.Left(str.ReverseFind('\\')),FileName);
    CStdioFile fp;
    if( !fp.Open( getstr, CFile::modeCreate| CFile::modeWrite |CFile::typeText ) ) 
            {
     #ifdef _DEBUG
      afxDump << "Unable to open file" << "\n";
    #endif
    exit( 1 );
    }
    fp.Write(m_name.GetBuffer(0), m_name.GetLength() );
    fp.Close();
         }ok搞定
      

  2.   


    HANDLE CreateFile(
      LPCTSTR lpFileName,                         // file name
      DWORD dwDesiredAccess,                      // access mode
      DWORD dwShareMode,                          // share mode
      LPSECURITY_ATTRIBUTES lpSecurityAttributes, // SD
      DWORD dwCreationDisposition,                // how to create
      DWORD dwFlagsAndAttributes,                 // file attributes
      HANDLE hTemplateFile                        // handle to template file
    );
    BOOL WriteFile(
      HANDLE hFile,                    // handle to file
      LPCVOID lpBuffer,                // data buffer
      DWORD nNumberOfBytesToWrite,     // number of bytes to write
      LPDWORD lpNumberOfBytesWritten,  // number of bytes written
      LPOVERLAPPED lpOverlapped        // overlapped buffer
    );
    BOOL CloseHandle(
      HANDLE hObject   // handle to object
    );