我是想让file.rtf文件中的数据显示在m_chatLog中,m_chatLog为CRichEditCtrl类型的一个控件关连的变量,但是我发现执行完后什么也没显示出来,这是为什么啊。file.rtf的内容是我用该控件的StreamOut写入的,而且我发现写出时的cb为4095,而读出的cb为4092,这3字节是怎么回事啊,这段代码我是在msdn中拷过来的,这是为什么啊。static DWORD CALLBACK StreamIntoCtrl(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie;
*pcb= pFile->Read(pbBuff, cb);
return 0;
}
void CChatManageDlg::OnSendBtn()
{
CFile cFile(TEXT("file.rtf"), CFile::modeRead);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = StreamIntoCtrl;
m_chatLog.StreamIn(SF_RTF, es);
}符加一个问题,如果显示出来后;怎样让它不复盖以前的数据,而是追加到以前的数据的后面
{
CFile* pFile = (CFile*) dwCookie;
*pcb= pFile->Read(pbBuff, cb);
return 0;
}
void CChatManageDlg::OnSendBtn()
{
CFile cFile(TEXT("file.rtf"), CFile::modeRead);
EDITSTREAM es;
es.dwCookie = (DWORD) &cFile;
es.pfnCallback = StreamIntoCtrl;
m_chatLog.StreamIn(SF_RTF, es);
}符加一个问题,如果显示出来后;怎样让它不复盖以前的数据,而是追加到以前的数据的后面
{
ReadFile((HANDLE) dwCookie, pbBuff, cb, (LPDWORD) pcb, NULL);
return 0; // file has been fully read in
}
outfile.Open("Notice.rtf", CFile::modeRead);
m_RichEdit.SetReadOnly(TRUE);
EDITSTREAM eStream;
eStream.dwCookie = outfile;
eStream.pfnCallback = EditStreamCallback;
eStream.dwError = 0;
m_RichEdit.StreamIn(SF_RTF, eStream);
这句不一样。 运行程序时rtf文件不能打开着。