void CMainFrame::CreateChatRecord()
{
CTreeCtrl* pTree = (CTreeCtrl*)GetDlgItem(IDC_TREECTRL); 
HTREEITEM hItem=pTree->GetSelectedItem(); 
if (hItem == NULL) 
return; 
CString strText = pTree->GetItemText(hItem); 
CString FileName=strText+_T(".txt"); 
m_pFile = new CFile((LPCTSTR)FileName,CFile::modeCreate | CFile::modeWrite); 
}
以上是我获得树控家子节点里显示的名字,并以这个名字为名建立的txt文件,我现在有个聊天对话框,如何将我发送框里的文本写到我已经建立的这个txt文本内?不要覆盖的写入,要接着以前的内容往下写的那种,我不知道怎么去获取这个已经建立的txt文件名,而且我只会覆盖写入,不知道如何实现不覆盖往里写??哪位大虾帮帮忙?

解决方案 »

  1.   

    代码这么改就可以了:m_pFile = new CFile((LPCTSTR)FileName,CFile::modeCreate | CFile::modeWrite|CFile::modeNoTruncate); 
    m_pFile->SeekToEnd();
      

  2.   

    BOOL Save(LPCTSTR lpszFile, LPCTSTR lpszText, BOOL bForAppending)
    {
    if (NULL == lpszFile || '\0' == *lpszFile || NULL == lpszText)
    return FALSE;

    //打开文件。
    CFile save;
    if (save.Open(lpszFile, CFile::modeCreate | (bForAppending ? CFile::modeNoTruncate : 0) | CFile::modeWrite))
    {
    if (bForAppending)
    {
    save.SeekToEnd();
    }

    save.Write(lpszText, _tcslen(lpszText));
    save.Close(); return TRUE;
    }

    return FALSE;
    }
      

  3.   

    哪里去接收文本框的字符啊??我自己只会把它保存在一个固定的TXT里面,就这样写 
    CFile file(_T("record.txt"),CFile::modeWrite|CFile::modeCreate); 
      CString Str; 
      GetDlgItemText(IDC_EDIT_RECV,Str); 
      file.Write(Str,Str.GetLength()); 
      file.Close(); 
      PlaySound("msg.wav",NULL,SND_FILENAME | SND_ASYNC);
    而且树控件和我这个写文件的代码不在同一个类里面的,写文件我新建了一个类了