这是一个非常普遍的问题。
我已按照本网站上的说明实施了基本文本编辑器:
http://aclacl.brinkster.net/MFC/ch12e.htm
我想在MyWordView.cpp中编写一个函数,它从富编辑控件中获取文本并将每个单词拆分成一个数组。
我该怎么做?
答案 0 :(得分:0)
请使用以下方法从富编辑控件中获取所选文本
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;
}