我要在一个基于对话框的工程中用一个RichEdit显示从文本文件中的内容,文本文件的大小是不知道的,现在就想知道该怎么把那个文本文件的内容读出来,显示到那个RichEdit上面?请高手帮帮忙!!!

解决方案 »

  1.   

    定义全局函数:
    DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
    {
       CFile* pFile = (CFile*) dwCookie;
       *pcb = pFile->Read(pbBuff, cb);
       return 0;
    }OnInitDialog:
    CFile file("ReadMe.txt", CFile::modeRead);
    EDITSTREAM es;
    es.dwCookie = (DWORD) &file;
    es.pfnCallback = MyStreamInCallback; 
    m_edit.StreamIn(SF_TEXT, es);
    file.Close();
      

  2.   

    CFile file;
    file.open
    file.Read;    
    setwindowtext
      

  3.   

    cheng_young(古道西风瘦马) :你的例子在编译的时候出现一个错误error C2440: '=' : cannot convert from 'unsigned long (__stdcall CJournalDlg::*)(unsigned long,unsigned char *,long,long *)' to 'unsigned long (__stdcall *)(unsigned long,unsigned char *,long,long *)'
            There is no context in which this conversion is possible
    是针对“es.pfnCallback = MyStreamInCallback; ”这句话的错误,能帮忙看一下吗?
      

  4.   

    static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
    {
       CFile* pFile = (CFile*) dwCookie;
       *pcb = pFile->Read(pbBuff, cb);
       return 0;
    }
      

  5.   

    DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
    {
       CFile* pFile = (CFile*) dwCookie;
       *pcb = pFile->Read(pbBuff, cb);
       return 0;
    }
    直接写在CPP文件里就行了, 放在OnInitDialog之前
      

  6.   

    不行啊。我都把你说的那个放在了我的.CPP的开头了。还是这个错误。
      

  7.   

    不好意思,还是有问题,在运行程序时会出现一个DEBUG错误的对话框。