现在有个主窗口的对话框中有个richedit控件,现在要把richedit中的信息保存在指定的目录下,通过点击主窗口菜单上的文件保存菜单可以弹出文件保存对话框选择文件路径,然而现在选完路径后点确定后没有保存文件,后面这个文件保存怎么实现呢,谁能给个实例

解决方案 »

  1.   

    http://quke.cn/log-357.html
      

  2.   

    1.首先用CFileDialog 创建一个保存文件的对话框,然后取得对话框中输入的文件名。
    2.用CreateFile()创建一个文件
    3.用WriteFile()向这个文件写入文本信息就行了。
    4.关闭句柄。
      

  3.   

    问题是要获取richedit中的内容呀,怎么获取呢
      

  4.   

    不是一个对话框的那样获取不了吧 一个是文件保存对话框 一个是主窗口的richedit对话框
      

  5.   

    废话不多说了,直接给段代码演示
            // 保存的
    CString pathName = fileDlg.GetPathName(); CFile f;
    char buf[512];
    if( !f.Open( pathName, CFile::modeCreate | CFile::modeWrite ) ) {
    AfxMessageBox("文件不存在!");
    return;
    }
    CArchive ar( &f, CArchive::store, 512, buf );
    CString strTemp;
    GetDlgItemText(IDC_RICHEDIT1, strTemp);
    ar<<strTemp;
    // 读取的
    CString pathName = fileDlg.GetPathName(); CFile f;
    char buf[512];
    if( !f.Open( pathName, CFile::modeRead ) ) { AfxMessageBox("文件不存在!");
    return;
    }
    CArchive ar( &f, CArchive::load, 512, buf );


    CString strTemp;
    ar>>strTemp;
    SetDlgItemText(IDC_RICHEDIT1, strTemp);
      

  6.   

    那个richedit是采用函数create创建的 没有id号怎么办呀
      

  7.   

    不是一个对话框的那样获取不了吧 一个是文件保存对话框 一个是主窗口的richedit对话框
    =========
    文件保存对话框?你的意思是你自己写的另一个对话框还是系统弹出来的哪个啊,如果是系统弹出来的那个对话框的话,它只是提供了一个你要保存的文件名而已。那个richedit是采用函数create创建的 没有id号怎么办呀
    ==========
    动态创建的控件同样也有ID号啊。
      

  8.   

    create的函数的倒数第二个参数virtual BOOL Create(
       LPCTSTR lpszClassName,
       LPCTSTR lpszWindowName,
       DWORD dwStyle,
       Const RECT& rect,
       CWnd* pParentWnd,
       UINT nID,
       CCreateContext* pContext = NULL
    );
      

  9.   

    不行啊 没有获取到richedit控件中的内容啊
      

  10.   

    使用 OPENFILENAME/这个是打开对话框。
      

  11.   

    现在关键是获取不了richedit的内容
      

  12.   

    你具体是怎么写的
    GetWindowText什么都得不到?
      

  13.   

    m_RichEdit[0].Create(ES_AUTOVSCROLL|ES_AUTOHSCROLL|WS_HSCROLL|ES_MULTILINE|ES_WANTRETURN|WS_VISIBLE|WS_BORDER|WS_VSCROLL , mRect, this, 1);
    id是1吧 怎么获取不了呢
      

  14.   

    m_RichEdit[0].GetWindowText();
    获取不到东西么?
    你编辑框里有内容么?
      

  15.   

    m_RichEdit.GetWindowText
    pRichEdit->GetWindowText
      

  16.   


    向RichEdit发送EM_STREAMOUT消息,MSDN有详细说明:   The EM_STREAMOUT message causes a rich edit control to pass its contents to 
     an application-defined EditStreamCallback callback function. The callback 
     function can then write the stream of data to a file or any other location 
     that it chooses.