Hallo,
ich brauche leider dringend Hilfe. Selber komme ich im Moment leider nicht weiter.
Zuerst die Erklärung worauf es hinauslaufen soll:
Ich habe eine von CRichEditCtrl abgeleitete Klasse CMyRichEditCtrl. In dieser habe ich eine Funktion, die über das Kontextmenü aufgerufen werden kann. Diese Funktion soll mir den Text bis zur nächsten Überschrift in meinem RichEdit zusammengeklappen, wie dies in fast jedem TextEditor möglich ist.
Dafür habe ich in der MSDN die Methode ITextRange::Collapse() entdeckt und inzwischen habe ich auch einen Code der compiliert und gelinkt werden kann. Aber obwohl die Funktion Collapse() S_OK zurückgibt ändert sich an dem Text in meinem RichEdit Ctrl gar nichts.
Hier der Quellcode:
// Get ole pointer
IRichEditOle\* pOle = GetIRichEditOle();
// Get ITextDocument pointer
ITextDocument\* pTextDoc = NULL;
pOle-\>QueryInterface(\_\_uuidof(ITextDocument),(void\*\*)&pTextDoc);
if (pTextDoc != NULL)
{
CString strError;
ITextRange \*pTextRange;
long lChar = (long)LineIndex(m\_nLine);
// select line which was right-clicked
if (pTextDoc-\>Range(lChar, (long)LineIndex(m\_nLine+1), &pTextRange) == S\_OK)
{
HRESULT hr = pTextRange-\>Collapse(tomStart);
if (hr != S\_OK)
{
AfxMessageBox("Collapse failed");
}
}
}
Für jede Hilfe wäre ich sehr dankbar.
Freundliche Grüße,
Armin