1
我正在尋找匹配並以顏色突出顯示它們。 之後我只顯示他們。 我需要用高亮顯示的文字重新顯示整個文本。 我試圖通過std::stringstream
和StreamIn
+ StreamOut
,但顏色丟失。MFC。保存並加載CMFCRibbonRichEditCtrl
void RichText::saveInStringstream()
{
EDITSTREAM es = { 0, 0, editStreamOutCallback };
es.dwCookie = reinterpret_cast<DWORD_PTR>(&m_rtf);
m_richEdit.StreamOut(SF_RTF, es);
}
DWORD CALLBACK RichText::editStreamOutCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
std::stringstream *rtf = reinterpret_cast<std::stringstream *>(dwCookie);
rtf->write(reinterpret_cast<char *>(pbBuff), cb);
*pcb = cb;
return 0;
}
'StreamOut'應該可以工作。看看'CRichEditView :: Stream'的主體。 – ZDF
我覺得我也很好。'void RichText :: saveInStringstream() { EDITSTREAM es = {0,0,editStreamOutCallback}; es.dwCookie = reinterpret_cast(&m_rtf); m_richEdit.StreamOut(SF_RTF,es); }' 'DWORD CALLBACK富文本:: editStreamOutCallback(DWORD_PTR dwCookie,LPBYTE pbBuff,LONG CB,LONG * PCB) { 的std :: stringstream的* RTF = reinterpret_cast的<性病:: stringstream的*>(dwCookie); rtf-> write(reinterpret_cast (pbBuff),cb); * pcb = cb; return 0; }' 但源文本仍然在流中。 –
在評論中閱讀這麼多代碼是不可能的。請點擊編輯按鈕並在您的問題中包含這些信息。 –