我在RichEdit中插入一张图片,然后调用下面的代码
CComPtr<IRichEditOle> pRichEditOle;
SendMessage(m_hWnd/*RichEidt窗口句柄*/, EM_GETOLEINTERFACE, 0, (LPARAM)&pRichEditOle);
CComPtr<ITextRange> pRichRange;
CComQIPtr<ITextDocument>(pRichEditOle)->Range(0, 0, &pRichRange);
if (NULL == pRichRange)
return E_FAIL;
pRichRange->Endof(tomStory, 1, NULL);
CComBSTR bstrText;
pRichRange->GetText(bstrText);我插入一张图片,但调用GetText也有内容返回,输出内容来看时是下面的值
"?\r\n"或者是"?\n",我的问题是怎么可以判断RichEdit窗口那里有没有文字存在,因为我只插入一张
图片到RichEdit控件中,我希望调用GetText应该没有文字返回.
CComPtr<IRichEditOle> pRichEditOle;
SendMessage(m_hWnd/*RichEidt窗口句柄*/, EM_GETOLEINTERFACE, 0, (LPARAM)&pRichEditOle);
CComPtr<ITextRange> pRichRange;
CComQIPtr<ITextDocument>(pRichEditOle)->Range(0, 0, &pRichRange);
if (NULL == pRichRange)
return E_FAIL;
pRichRange->Endof(tomStory, 1, NULL);
CComBSTR bstrText;
pRichRange->GetText(bstrText);我插入一张图片,但调用GetText也有内容返回,输出内容来看时是下面的值
"?\r\n"或者是"?\n",我的问题是怎么可以判断RichEdit窗口那里有没有文字存在,因为我只插入一张
图片到RichEdit控件中,我希望调用GetText应该没有文字返回.
谢谢你的回答。我在测试中发现,当我插入一张图片到RichEdit中,RichEdit好像会在图片数据后面多添加了数据,测试中,我发现好像是"?\r\n"或者是"?\n",我想请问一下RichEidt有没有判断存不存在文字的函数?你上面说过要过滤GetText函数,但我都没有输入文字到RichEdit,这么过滤?
谢谢你的回答。你的意思是获取所有的rtf中的内容,然后根据rtf中的文档格式来分析里面的内容。好的,我试试你这种方法,看能不能实现。谢谢了。
请问一下,我现在的程序是通过GetText来获取文字信息的,按你上面的回答,我应该是获取所有的信息,那请问一下,我可以通过什么途径获取到那些数据了?谢谢了。
// to a file.
static DWORD CALLBACK
MyStreamOutCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
CFile* pFile = (CFile*) dwCookie; pFile->Write(pbBuff, cb);
*pcb = cb; return 0;
}// The example code.// The file to store the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_OutFile.rtf"),
CFile::modeCreate|CFile::modeWrite);
EDITSTREAM es;es.dwCookie = (DWORD) &cFile;
es.pfnCallback = MyStreamOutCallback;
m_myRichEditCtrl.StreamOut(SF_RTF, es);
来自msdn,仅供参考,查找CRichEditCtrl就可以找到