-1
這是一個非常普遍的問題。從Rich Edit Control獲取文本
我已經按照本網站上的指令來實現基本的文本編輯器:
http://aclacl.brinkster.net/MFC/ch12e.htm
我想寫在MyWordView.cpp一個函數,會從豐富的編輯控制和分割文本每個單詞放入一個數組中。
我該怎麼辦?
這是一個非常普遍的問題。從Rich Edit Control獲取文本
我已經按照本網站上的指令來實現基本的文本編輯器:
http://aclacl.brinkster.net/MFC/ch12e.htm
我想寫在MyWordView.cpp一個函數,會從豐富的編輯控制和分割文本每個單詞放入一個數組中。
我該怎麼辦?
請使用下面的方法來得到豐富的編輯控件選定的文本,
class CSampleRichEditCtrl : public CRichEditCtrl
{
bool GetString(CString &a_String, CHARRANGE &a_SelectionRange);
};
bool CSampleRichEditCtrl::GetString(CString &a_String, CHARRANGE &a_SelectionRange)
{
a_SelectionRange.cpMax = 0;
a_SelectionRange.cpMin = 0;
CHARRANGE aSelectedRange;
CString aSelectedText;
bool IsSelected(true);
GetSel(aSelectedRange);
int aMin(aSelectedRange.cpMin);
int aMax(aSelectedRange.cpMax);
int aDifference(aMax - aMin);
if(aDifference == 0)
{
aDifference = GetTextLength();
IsSelected = false;
}
LPTSTR aSelectedString = aSelectedText.GetBufferSetLength((aDifference + 1) * 2);
aSelectedString[0] = NULL;
if(IsSelected == true)
{
aSelectedText.ReleaseBuffer();
GetSelText(aSelectedString);
}
else
{
GetWindowText(aSelectedString, (aDifference + 1) * 2);
aSelectedText.ReleaseBuffer();
}
a_SelectionRange = aSelectedRange;
a_String = aSelectedText;
return IsSelected;
}
感謝您的答案,但如果我理解正確,這只是獲取選定的文本....我需要從豐富的編輯控件中獲取所有文本。 – user2361103
什麼地方錯了,你對你的另一個問題得到的回答?你試過了嗎? – codeling
我試過幾種方法,但都沒有工作。目前我正試圖弄清楚如何獲得富文本控制的句柄。我需要它來嘗試GetDlgItemText。 – user2361103
所以你還在試圖解決其他問題的問題,對吧?那麼爲什麼不繼續呢? – codeling