📄 crichedit.cpp
字号:
#include "CRichEdit.hpp"
void CRichEdit::StreamIn(CMemory& Data)
{
StreamIn(Data.Ptr(),Data.Size());
}
void CRichEdit::StreamIn(void* Data,UINT Len)
{
// Prepare to stream in!
reCountToLoad = Len;
rePos = (char*)Data;
// Fill in RichEdit
EDITSTREAM es;
es.dwCookie = (DWORD)this;
es.dwError = 0;
es.pfnCallback=(EDITSTREAMCALLBACK)StreamInCallback;
SendMessage(EM_STREAMIN,(WPARAM)SF_RTF,(LPARAM)&es);
}
// Auxiliary function to fill a RichEdit
DWORD CALLBACK CRichEdit::StreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cbx, LONG FAR *pcb)
{
// dwCookie holds a pointer to our class
CRichEdit* re = (CRichEdit*) dwCookie;
// Calculate bytes to transfer in this Pass
ULONG ToTransfer = /*(cbx > 1) ? (cbx >> 1) : 1;*/ cbx;
ToTransfer = (ToTransfer > re->reCountToLoad) ? re->reCountToLoad : ToTransfer;
if (!re->rePos)
return 0; // Error, Don't continue
if (!re->reCountToLoad)
return 1; // Contents totally transferred!
// Copy data to buffer
memcpy((void *)pbBuff,(const void*)re->rePos,ToTransfer);
// Update bytes remaining
re->reCountToLoad -= ToTransfer;
re->rePos += ToTransfer;
// Return
*pcb=ToTransfer;
// Go on with transfer!
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -