Re: CRichEditCtrl contents from RTF file
On Apr 27, 10:18 am, JY <s...@nospamgroup.com> wrote:
Hi,
I have a Wizard based application, in which I have some property pages. I=
n
one of the pages, I have a CRichEditCtrl, and I try to populate its conte=
nts
from a RTF file. The porblem is, it works correctly if the RTF file is sm=
all
(about 4-5 KB), but when I use a larger file, its contents either don't
display at all, or gets truncated.
The code is shown below. What can I do to show the entire contents of the
RTF file in the control? Also, it should work for all languages - I have
UNICODE defined in the project. m_RECtrl is the rich edit control.
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_RICHEDIT21, m_Edit);
}
static DWORD CALLBACK MyStreamInCallback(DWORD dwCookie, LPBYTE
pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*)(DWORD_PTR)dwCookie;
*pcb = pFile->Read(pbBuff, cb);
return 0;
}
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_Edit.SetOptions(ECOOP_OR, ECO_AUTOVSCROLL | ECO_AUTOHSCROLL |
ECO_READONLY);
m_Edit.ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_FRAMECHANGED);
m_Edit.ShowScrollBar(SB_VERT, TRUE);
CFile f(RTF_PATH_HERE, CFile::modeRead);
EDITSTREAM es;
es.dwCookie = (DWORD_PTR)&f;
es.pfnCallback = (EDITSTREAMCALLBACK)MyStreamInCallback;
long l = m_Edit.StreamIn(SF_RTF, es);
return TRUE; // return TRUE unless you set the focus to a control
}