Класс CRichEditCtrl

Предоставляет функции элемента управления форматированным редактированием.

Синтаксис

class CRichEditCtrl : public CWnd

Участники

Открытые конструкторы

Имя Описание
CRichEditCtrl::CRichEditCtrl Формирует объект CRichEditCtrl.

Открытые методы

Имя Описание
CRichEditCtrl::CanPaste Определяет, можно ли вставить содержимое буфера обмена в этот элемент управления расширенными изменениями.
CRichEditCtrl::CanRedo Определяет, есть ли какие-либо действия в очереди повторного входа элемента управления.
CRichEditCtrl::CanUndo Определяет, можно ли отменить операцию редактирования.
CRichEditCtrl::CharFromPos Извлекает сведения о символе, близком к указанной точке в клиентской области элемента управления редактирования.
CRichEditCtrl::Clear Очищает текущий выбор.
CRichEditCtrl::Copy Копирует текущий выбор в буфер обмена.
CRichEditCtrl::Create Создает элемент управления полнофункциональные изменения Windows и связывает его с этим CRichEditCtrl объектом.
CRichEditCtrl::CreateEx Создает элемент управления полнофункциональные изменения Windows с указанными расширенными стилями Windows и связывает его с этим CRichEditCtrl объектом.
CRichEditCtrl::Cut Вырезает текущий выбор в буфер обмена.
CRichEditCtrl::DisplayBand Отображает часть содержимого этого CRichEditCtrl объекта.
CRichEditCtrl::EmptyUndoBuffer Сбрасывает (очищает) флаг отмены этого CRichEditCtrl объекта.
CRichEditCtrl::FindText Находит текст в этом CRichEditCtrl объекте.
CRichEditCtrl::FindWordBreak Находит следующий разрыв слова до или после указанной позиции символа или извлекает сведения о символе в этой позиции.
CRichEditCtrl::FormatRange Форматирует диапазон текста для целевого выходного устройства.
CRichEditCtrl::GetCharPos Определяет расположение заданного символа в этом CRichEditCtrl объекте.
CRichEditCtrl::GetDefaultCharFormat Извлекает текущие атрибуты форматирования символов по умолчанию в этом CRichEditCtrl объекте.
CRichEditCtrl::GetEventMask Извлекает маску событий для этого CRichEditCtrl объекта.
CRichEditCtrl::GetFirstVisibleLine Определяет самую верхнюю видимую строку в этом CRichEditCtrl объекте.
CRichEditCtrl::GetIRichEditOle Извлекает указатель на IRichEditOle интерфейс для этого элемента управления расширенными изменениями.
CRichEditCtrl::GetLimitText Получает ограничение на объем текста, который пользователь может ввести в этот CRichEditCtrl объект.
CRichEditCtrl::GetLine Извлекает строку текста из этого CRichEditCtrl объекта.
CRichEditCtrl::GetLineCount Извлекает количество строк в этом CRichEditCtrl объекте.
CRichEditCtrl::GetModify Определяет, изменилось ли содержимое этого CRichEditCtrl объекта с момента последнего сохранения.
CRichEditCtrl::GetOptions Извлекает параметры элемента управления расширенными возможностями редактирования.
CRichEditCtrl::GetParaFormat Извлекает атрибуты форматирования абзаца в текущем выделенном объекте CRichEditCtrl .
CRichEditCtrl::GetPunctuation Извлекает текущие знаки препинания для элемента управления расширенными изменениями. Это сообщение доступно только в азиатских версиях операционной системы.
CRichEditCtrl::GetRect Извлекает прямоугольник форматирования для этого CRichEditCtrl объекта.
CRichEditCtrl::GetRedoName Извлекает тип следующего действия, если таковой есть, в очереди повтора элемента управления.
CRichEditCtrl::GetSel Возвращает начальные и конечные позиции текущего выделения в этом CRichEditCtrl объекте.
CRichEditCtrl::GetSelectionCharFormat Извлекает атрибуты форматирования символов в текущем выделенном CRichEditCtrl объекте.
CRichEditCtrl::GetSelectionType Извлекает тип содержимого в текущем выборе этого CRichEditCtrl объекта.
CRichEditCtrl::GetSelText Возвращает текст текущего выделенного фрагмента в этом CRichEditCtrl объекте
CRichEditCtrl::GetTextLength Извлекает длину текста в символах в этом CRichEditCtrl объекте. Не включает завершающий символ NULL.
CRichEditCtrl::GetTextLengthEx Извлекает количество символов или байтов в режиме полного редактирования. Принимает список флагов, указывающий метод определения длины текста в элементе управления расширенными изменениями.
CRichEditCtrl::GetTextMode Извлекает текущий текстовый режим и отменяет уровень элемента управления расширенными изменениями.
CRichEditCtrl::GetTextRange Извлекает указанный диапазон текста.
CRichEditCtrl::GetUndoName Извлекает тип следующего действия отмены, если таковой есть.
CRichEditCtrl::GetWordWrapMode Извлекает текущие параметры упаковки слов и критических слов для элемента управления расширенными изменениями. Это сообщение доступно только в азиатских версиях операционной системы.
CRichEditCtrl::HideSelection Отображает или скрывает текущий выбор.
CRichEditCtrl::LimitText Ограничивает объем текста, который пользователь может ввести в CRichEditCtrl объект.
CRichEditCtrl::LineFromChar Определяет, какая строка содержит заданный символ.
CRichEditCtrl::LineIndex Извлекает символьный индекс заданной строки в этом CRichEditCtrl объекте.
CRichEditCtrl::LineLength Извлекает длину заданной строки в этом CRichEditCtrl объекте.
CRichEditCtrl::LineScroll Прокручивает текст в этом CRichEditCtrl объекте.
CRichEditCtrl::Paste Вставляет содержимое буфера обмена в этот элемент управления расширенными изменениями.
CRichEditCtrl::PasteSpecial Вставляет содержимое буфера обмена в этот элемент управления расширенными изменениями в указанном формате данных.
CRichEditCtrl::PosFromChar Извлекает координаты клиентской области указанного символа в элементе управления редактированием.
CRichEditCtrl::Redo Переопределяет следующее действие в очереди повторного входа элемента управления.
CRichEditCtrl::ReplaceSel Заменяет текущий выделенный фрагмент в этом CRichEditCtrl объекте указанным текстом.
CRichEditCtrl::RequestResize Заставляет этот CRichEditCtrl объект отправлять уведомления об изменении размера запроса.
CRichEditCtrl::SetAutoURLDetect Указывает, активна ли функция автоматического обнаружения URL-адресов в элементе управления расширенными изменениями.
CRichEditCtrl::SetBackgroundColor Задает цвет фона в этом CRichEditCtrl объекте.
CRichEditCtrl::SetDefaultCharFormat Задает текущие атрибуты форматирования символов по умолчанию в этом CRichEditCtrl объекте.
CRichEditCtrl::SetEventMask Задает маску событий для этого CRichEditCtrl объекта.
CRichEditCtrl::SetModify Задает или очищает флаг изменения для этого CRichEditCtrl объекта.
CRichEditCtrl::SetOLECallback Задает COM-объект для этого элемента управления расширенными IRichEditOleCallback изменениями.
CRichEditCtrl::SetOptions Задает параметры для этого CRichEditCtrl объекта.
CRichEditCtrl::SetParaFormat Задает атрибуты форматирования абзаца в текущем выделенном объекте CRichEditCtrl .
CRichEditCtrl::SetPunctuation Задает знаки препинания для элемента управления расширенными изменениями. Это сообщение доступно только в азиатских версиях операционной системы.
CRichEditCtrl::SetReadOnly Задает параметр только для чтения для этого CRichEditCtrl объекта.
CRichEditCtrl::SetRect Задает прямоугольник форматирования для этого CRichEditCtrl объекта.
CRichEditCtrl::SetSel Задает выбор в этом CRichEditCtrl объекте.
CRichEditCtrl::SetSelectionCharFormat Задает атрибуты форматирования символов в текущем выделенном CRichEditCtrl объекте.
CRichEditCtrl::SetTargetDevice Задает целевое выходное устройство для этого CRichEditCtrl объекта.
CRichEditCtrl::SetTextMode Задает текстовый режим или отменить уровень элемента управления расширенными изменениями. Сообщение завершается ошибкой, если элемент управления содержит текст.
CRichEditCtrl::SetUndoLimit Задает максимальное количество действий, которые могут храниться в очереди отмены.
CRichEditCtrl::SetWordCharFormat Задает атрибуты форматирования символов в текущем слове в этом CRichEditCtrl объекте.
CRichEditCtrl::SetWordWrapMode Задает параметры упаковки и разбиения слов для элемента управления расширенными изменениями. Это сообщение доступно только в азиатских версиях операционной системы.
CRichEditCtrl::StopGroupTyping Запрещает элементу управления собирать дополнительные действия ввода в текущее действие отмены. В элементе управления сохраняется следующее действие ввода (если таковые есть) в новое действие в очереди отмены.
CRichEditCtrl::StreamIn Вставляет текст из входного потока в этот CRichEditCtrl объект.
CRichEditCtrl::StreamOut Сохраняет текст из этого CRichEditCtrl объекта в выходной поток.
CRichEditCtrl::Undo Отменяет последнюю операцию редактирования.

Замечания

Элемент управления расширенными изменениями — это окно, в котором пользователь может ввести и изменить текст. Текст можно назначить символьным и абзацным форматированием и включать внедренные объекты OLE. Элементы управления расширенными изменениями предоставляют интерфейс программирования для форматирования текста. Однако приложение должно реализовать все компоненты пользовательского интерфейса, необходимые для обеспечения доступности операций форматирования для пользователя.

Этот общий элемент управления Windows (и, следовательно CRichEditCtrl , класс) доступен только для программ под управлением Windows 95/98 и Windows NT версии 3.51 и более поздних версий. Класс CRichEditCtrl поддерживает 2.0 и 3.0 элемента управления полнофункциональные изменения пакета SDK для Windows.

Внимание

Если вы используете элемент управления расширенными изменениями в диалоговом окне (независимо от того, является ли приложение SDI, MDI или диалоговым окном), необходимо вызвать AfxInitRichEdit один раз перед отображением диалогового окна. Обычное место для вызова этой функции находится в функции-члене программы InitInstance . Не нужно вызывать его при каждом отображении диалогового окна только при первом отображении. Если вы работаете с CRichEditViewней, вам не придется вызыватьAfxInitRichEdit.

Дополнительные сведения об использовании CRichEditCtrlсм. в следующей статье:

Пример использования элемента управления расширенными изменениями в приложении MFC см. в примере приложения WORDPAD .

Иерархия наследования

CObject

CCmdTarget

CWnd

CRichEditCtrl

Requirements

Заголовок.afxcmn.h

CRichEditCtrl::CanPaste

Определяет, может ли элемент управления расширенными изменениями вставить указанный формат буфера обмена.

BOOL CanPaste(UINT nFormat = 0) const;

Параметры

nFormat
Формат данных буфера обмена для запроса. Этот параметр может быть одним из стандартных форматов буфера обмена или возвращаемым значением RegisterClipboardFormat.

Возвращаемое значение

Ненулевое значение, если формат буфера обмена может быть вставлен; в противном случае — 0.

Замечания

Если nFormat значение равно 0, CanPaste попробуйте любой формат в буфере обмена.

Дополнительные сведения см. в разделе EM_CANPASTE "Сообщение и RegisterClipboardFormat функция" в пакете SDK для Windows.

Пример

// Paste the clipboard data if possible.
if (m_myRichEditCtrl.CanPaste())
{
   m_myRichEditCtrl.Paste();
}

CRichEditCtrl::CanRedo

Определяет, содержит ли очередь повтора какие-либо действия.

BOOL CanRedo() const;

Возвращаемое значение

Ненулевое значение, если очередь повтора содержит действия, в противном случае — значение 0.

Замечания

Чтобы узнать имя операции в очереди повтора, вызовите .CRichEditCtrl::GetRedoName Чтобы повторно выполнить последнюю операцию отмены, вызовите Redo.

Дополнительные сведения см EM_CANREDO . в пакете SDK для Windows.

CRichEditCtrl::CanUndo

Определяет, можно ли отменить последнюю операцию редактирования.

BOOL CanUndo() const;

Возвращаемое значение

Ненулевое значение, если последняя операция редактирования может быть отменена вызовом Undo функции-члена; 0, если она не может быть отменена.

Замечания

Дополнительные сведения см EM_CANUNDO . в пакете SDK для Windows.

Пример

// Undo the last operation, if possible.
if (m_myRichEditCtrl.CanUndo())
   m_myRichEditCtrl.Undo();

CRichEditCtrl::CharFromPos

Извлекает сведения о символе в точке, указанной параметром pt.

int CharFromPos(CPoint pt) const;

Параметры

pt
CPoint Объект, содержащий координаты указанной точки.

Возвращаемое значение

Отсчитываемый от нуля индекс символа, ближайший к указанной точке. Если указанная точка выходит за пределы последнего символа элемента управления, возвращаемое значение указывает последний символ в элементе управления.

Замечания

Эта функция-член работает с расширенным элементом управления редактированием. Чтобы получить сведения для элемента управления редактированием, вызовите CEdit::CharFromPosкоманду.

Дополнительные сведения см EM_CHARFROMPOS . в пакете SDK для Windows.

CRichEditCtrl::Clear

Удаляет (очищает) текущий выбор (при наличии) в элементе управления расширенными изменениями.

void Clear();

Замечания

Удаление, выполняеме путем Clear вызова Undo функции-члена, можно отменить.

Чтобы удалить текущий выбор и поместить удаленное содержимое в буфер обмена, вызовите Cut функцию-член.

Дополнительные сведения см WM_CLEAR . в пакете SDK для Windows.

Пример

// Delete all of the text.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Clear();

CRichEditCtrl::Copy

Копирует текущий выбор (если таковой) в элемент управления расширенными изменениями в буфер обмена.

void Copy();

Замечания

Дополнительные сведения см WM_COPY . в пакете SDK для Windows.

Пример

// Copy all of the text to the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Copy();

CRichEditCtrl::Create

Создает элемент управления полнофункциональные изменения Windows и связывает его с этим CRichEditCtrl объектом.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwStyle
Задает стиль элемента управления редактирования. Примените сочетание стилей окон, перечисленных в разделе "Примечания " ниже, и измените стили элементов управления, описанные в пакете SDK для Windows.

rect
Указывает размер и позицию элемента управления редактирования. Может быть объектом или RECT структуройCRect.

pParentWnd
Указывает родительское окно элемента управления редактирования (часто ).CDialog Это не должно быть NULL.

nID
Указывает идентификатор элемента управления редактирования.

Возвращаемое значение

Ненулевое значение, если инициализация выполнена успешно; в противном случае — значение 0.

Замечания

Вы создаете CRichEditCtrl объект на двух шагах. Сначала вызовите CRichEditCtrl конструктор, а затем вызов Create, который создает элемент управления редактирования Windows и присоединяет его к объекту CRichEditCtrl .

При создании расширенного элемента управления редактирования с помощью этой функции сначала необходимо загрузить необходимую библиотеку общих элементов управления. Чтобы загрузить библиотеку, вызовите глобальную функцию AfxInitRichEdit, которая, в свою очередь, инициализирует общую библиотеку элементов управления. Необходимо вызывать AfxInitRichEdit только один раз в процессе.

При Create выполнении Windows отправляет в WM_CREATEWM_NCCREATEWM_NCCALCSIZEэлемент управления редактирования сообщения , а также WM_GETMINMAXINFO сообщения.

Эти сообщения обрабатываются по умолчанию функциями OnNcCreate, OnNcCalcSizeOnCreateи OnGetMinMaxInfo членами в базовом CWnd классе. Чтобы расширить обработку сообщений по умолчанию, наследуйте класс, CRichEditCtrlдобавьте карту сообщений в новый класс и переопределите указанные выше функции-обработчика сообщений. Переопределите OnCreate, например, для выполнения необходимой инициализации для нового класса.

Примените следующие стили окна к элементу управления редактирования.

  • WS_CHILD Всегда.

  • WS_VISIBLE Обычно.

  • WS_DISABLED Редко.

  • WS_GROUP Группирование элементов управления.

  • WS_TABSTOP Включение элемента управления редактирования в порядок табуляции.

Дополнительные сведения о стилях окон см CreateWindow . в пакете SDK для Windows.

Пример

m_myRichEditCtrl.Create(
    WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE,
    CRect(10, 10, 100, 200), pParentWnd, IDD_RICHEDITCTRL);

CRichEditCtrl::CreateEx

Создает элемент управления (дочернее окно) и связывает его с CRichEditCtrl объектом.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Параметры

dwExStyle
Задает расширенный стиль создаваемого элемента управления. Список расширенных стилей Windows см dwExStyle . в параметре CreateWindowEx пакета SDK для Windows.

dwStyle
Задает стиль элемента управления редактирования. Примените сочетание стилей окон, перечисленных в разделе Create "Примечания" и изменения стилей элементов управления, описанных в пакете SDK для Windows.

rect
Ссылка на RECT структуру, описывающую размер и положение создаваемого окна в координатах pParentWndклиента.

pParentWnd
Указатель на окно, которое является родительским элементом элемента управления.

nID
Идентификатор дочернего окна элемента управления.

Возвращаемое значение

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Используйте CreateEx вместо Create применения расширенных стилей Windows, указанных предисловием WS_EX_расширенного стиля Windows.

CRichEditCtrl::CRichEditCtrl

Формирует объект CRichEditCtrl.

CRichEditCtrl();

Замечания

Используется Create для создания элемента управления полнофункциональные изменения Windows.

Пример

// Declare a local CRichEditCtrl object.
CRichEditCtrl myRichEditCtrl;

// Declare a dynamic CRichEditCtrl object.
CRichEditCtrl* pRichEditCtrl = new CRichEditCtrl;

CRichEditCtrl::Cut

Удалите (вырезает) текущий выделенный фрагмент (если таковой) в элементе управления расширенными изменениями и копирует удаленный текст в буфер обмена.

void Cut();

Замечания

Удаление, выполняеме путем Cut вызова Undo функции-члена, можно отменить.

Чтобы удалить текущий выделенный фрагмент без размещения удаленного текста в буфер обмена, вызовите Clear функцию-член.

Дополнительные сведения см WM_CUT . в пакете SDK для Windows.

Пример

// Delete all of the text and copy it to the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Cut();

CRichEditCtrl::DisplayBand

Отображает часть содержимого элемента управления расширенными изменениями (текстовые и OLE-элементы), как было отформатировано FormatRangeранее.

BOOL DisplayBand(LPRECT pDisplayRect);

Параметры

pDisplayRect
Указатель на RECT объект или CRect область устройства для отображения текста.

Возвращаемое значение

Ненулевое значение, если отображение отформатированного текста успешно выполнено, в противном случае — значение 0.

Замечания

Текст и элементы OLE обрезаются к области, указанной указателем pDisplayRect.

Дополнительные сведения см EM_DISPLAYBAND . в пакете SDK для Windows.

Пример

Пример см. в примере CRichEditCtrl::FormatRange.

CRichEditCtrl::EmptyUndoBuffer

Сбрасывает (очищает) флаг отмены этого элемента управления расширенными изменениями.

void EmptyUndoBuffer();

Замечания

Теперь элемент управления не сможет отменить последнюю операцию редактирования. Флаг отмены устанавливается всякий раз, когда операция в элементе управления расширенными изменениями может быть отменена.

Флаг отмены автоматически очищается при вызове CWnd функции-члена SetWindowText.

Дополнительные сведения см EM_EMPTYUNDOBUFFER . в пакете SDK для Windows.

Пример

// Clear the undo buffer.
if (m_myRichEditCtrl.CanUndo())
{
   m_myRichEditCtrl.EmptyUndoBuffer();
   ASSERT(!m_myRichEditCtrl.CanUndo());
}

CRichEditCtrl::FindText

Находит текст в элементе управления расширенными изменениями.

long FindText(
    DWORD dwFlags,
    FINDTEXTEX* pFindText) const;

Параметры

dwFlags
Список возможных значений см wParam . в EM_FINDTEXTEXT пакете SDK для Windows.

pFindText
Указатель на FINDTEXTEX структуру, предоставляющую параметры поиска и возвращая диапазон, в котором найдено совпадение.

Возвращаемое значение

Отсчитываемая от нуля позиция символов следующего совпадения; - 1, если больше совпадений нет.

Замечания

Можно выполнить поиск вверх или вниз, задав правильные параметры диапазона в CHARRANGE структуре в FINDTEXTEX структуре.

Дополнительные сведения см. в статье EM_FINDTEXTEX "Сообщение и FINDTEXTEX структура" в пакете SDK для Windows.

Пример

// Set the selection to be the first occurrence of the
// string lpszmyString, if it is found.
FINDTEXTEX ft;
ft.chrg.cpMin = 0;
ft.chrg.cpMax = 50;
ft.lpstrText = _T("wallaby");
long n = m_myRichEditCtrl.FindText(FR_MATCHCASE | FR_WHOLEWORD, &ft);
if (n != -1)
   m_myRichEditCtrl.SetSel(ft.chrgText);

CRichEditCtrl::FindWordBreak

Находит следующий разрыв слова до или после позиции, указанной в параметре nStart.

DWORD FindWordBreak(
    UINT nCode,
    DWORD nStart) const;

Параметры

nCode
Указывает действие, которое нужно предпринять. Список возможных значений см. в описании параметра code в EM_FINDWORDBREAK пакете SDK для Windows.

nStart
Отсчитываемая от нуля позиция символа, с которой следует начать.

Возвращаемое значение

На основе параметра nCode. Дополнительные сведения см EM_FINDWORDBREAK . в пакете SDK для Windows.

Замечания

Эту функцию-член можно использовать для получения сведений о символе в заданной позиции.

CRichEditCtrl::FormatRange

Форматирует диапазон текста в элементе управления расширенными изменениями для определенного устройства.

long FormatRange(
    FORMATRANGE* pfr,
    BOOL bDisplay = TRUE);

Параметры

pfr
Указатель на FORMATRANGE структуру, содержащую сведения о выходе устройства. NULL указывает, что кэшированные сведения в элементе управления расширенными изменениями можно освободить.

bDisplay
Указывает, должен ли отображаться текст. Если FALSEтекст просто измеряется.

Возвращаемое значение

Индекс последнего символа, который соответствует региону плюс один.

Замечания

Как правило, за этим вызовом следует вызов DisplayBand.

Дополнительные сведения см. в статье EM_FORMATRANGE "Сообщение и FORMATRANGE структура" в пакете SDK для Windows.

Пример

// First obtain a pointer to a printer DC.
CPageSetupDialog psDlg;
if (IDOK == psDlg.DoModal())
{
   CDC *pMyPrinterDC = CDC::FromHandle(psDlg.CreatePrinterDC());

   FORMATRANGE fr;

   // Get the page width and height from the printer.
   long lPageWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),
                              1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));
   long lPageHeight = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALHEIGHT),
                               1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSY));
   CRect rcPage(0, 0, lPageWidth, lPageHeight);

   // Format the text and render it to the printer.
   fr.hdc = pMyPrinterDC->m_hDC;
   fr.hdcTarget = pMyPrinterDC->m_hDC;
   fr.rc = rcPage;
   fr.rcPage = rcPage;
   fr.chrg.cpMin = 0;
   fr.chrg.cpMax = -1;
   m_myRichEditCtrl.FormatRange(&fr, TRUE);

   // Update the display with the new formatting.
   RECT rcClient;
   m_myRichEditCtrl.GetClientRect(&rcClient);
   m_myRichEditCtrl.DisplayBand(&rcClient);

   pMyPrinterDC->DeleteDC();
}

CRichEditCtrl::GetCharPos

Получает позицию (верхний левый угол) заданного символа в этом CRichEditCtrl объекте.

CPoint GetCharPos(long lChar) const;

Параметры

lChar
Отсчитываемый от нуля индекс символа.

Возвращаемое значение

Расположение левого верхнего угла символа, заданного lChar.

Замечания

Символ задается путем указания его отсчитываемого от нуля значения индекса. Если lChar значение больше индекса последнего символа в этом CRichEditCtrl объекте, возвращаемое значение указывает координаты позиции символа только после последнего символа в этом CRichEditCtrl объекте.

Дополнительные сведения см EM_POSFROMCHAR . в пакете SDK для Windows.

CRichEditCtrl::GetDefaultCharFormat

Возвращает атрибуты форматирования символов по умолчанию этого CRichEditCtrl объекта.

DWORD GetDefaultCharFormat(CHARFORMAT& cf) const;  DWORD GetDefaultCharFormat(CHARFORMAT2& cf) const;

Параметры

cf
В первой версии указатель на CHARFORMAT структуру, содержащую атрибуты форматирования символов по умолчанию.

Во второй версии указатель на CHARFORMAT2 структуру, которая является расширением Rich Edit 2.0 в CHARFORMAT структуре, в которой хранятся атрибуты форматирования символов по умолчанию.

Возвращаемое значение

Член dwMaskcfданных . Он указал атрибуты форматирования символов по умолчанию.

Замечания

Дополнительные сведения см. в сообщении EM_GETCHARFORMAT и CHARFORMATCHARFORMAT2 структурах в пакете SDK для Windows.

Пример

Пример см. в примере SetDefaultCharFormat.

CRichEditCtrl::GetEventMask

Возвращает маску события для этого CRichEditCtrl объекта.

long GetEventMask() const;

Возвращаемое значение

Маска события для этого CRichEditCtrl объекта.

Замечания

Маска события указывает, какие сообщения CRichEditCtrl уведомления объект отправляет в родительское окно.

Дополнительные сведения см EM_GETEVENTMASK . в пакете SDK для Windows.

Пример

Пример см. в примере CRichEditCtrl::SetEventMask.

CRichEditCtrl::GetFirstVisibleLine

Определяет самую верхнюю видимую строку в этом CRichEditCtrl объекте.

int GetFirstVisibleLine() const;

Возвращаемое значение

Отсчитываемый от нуля индекс самой видимой линии в этом CRichEditCtrl объекте.

Замечания

Дополнительные сведения см EM_GETFIRSTVISIBLELINE . в пакете SDK для Windows.

Пример

int nFirstVisible = m_myRichEditCtrl.GetFirstVisibleLine();

// Scroll the rich edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myRichEditCtrl.LineScroll(-nFirstVisible, 0);
}

CRichEditCtrl::GetIRichEditOle

Обращается к интерфейсу IRichEditOle для этого CRichEditCtrl объекта.

IRichEditOle* GetIRichEditOle() const;

Возвращаемое значение

Указатель на IRichEditOle интерфейс, который можно использовать для доступа к функциям OLE этого CRichEditCtrl объекта; NULL если интерфейс недоступен.

Замечания

Используйте этот интерфейс для доступа к функциям OLE этого CRichEditCtrl объекта.

Дополнительные сведения см. в статье EM_GETOLEINTERFACE "Сообщение и IRichEditOle интерфейс" в пакете SDK для Windows.

CRichEditCtrl::GetLimitText

Возвращает ограничение текста для этого CRichEditCtrl объекта.

long GetLimitText() const;

Возвращаемое значение

Текущее ограничение текста в байтах для этого CRichEditCtrl объекта.

Замечания

Ограничение текста — это максимальный объем текста в байтах, элемент управления расширенными изменениями может приниматься.

Дополнительные сведения см EM_GETLIMITTEXT . в пакете SDK для Windows.

Пример

// The new text of the rich edit control.
LPCTSTR lpszmyString = _T("Here's some text in our rich edit control!");
long nLength = (long)_tcslen(lpszmyString);

// Want the text limit to be at least the size of the new string.
if (m_myRichEditCtrl.GetLimitText() < nLength)
   m_myRichEditCtrl.LimitText(nLength);

m_myRichEditCtrl.SetWindowText(lpszmyString);

CRichEditCtrl::GetLine

Извлекает строку текста из этого CRichEditCtrl объекта.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Параметры

nIndex
Отсчитываемый от нуля индекс извлекаемой строки.

lpszBuffer
Указывает на буфер для получения текста. Первое слово буфера должно указывать максимальное количество байтов, которые можно скопировать в буфер.

nMaxLength
Максимальное количество символов, в которые можно скопировать lpszBuffer. Вторая форма GetLine помещает это значение в первое слово буфера, заданного lpszBuffer.

Возвращаемое значение

Количество символов, скопированных в lpszBuffer.

Замечания

Скопированная строка не содержит завершающийся пустой символ.

Примечание.

Так как первое слово буфера сохраняет количество символов, которые нужно скопировать, убедитесь, что буфер не менее 4 байтов длинен.

Дополнительные сведения см EM_GETLINE . в пакете SDK для Windows.

Пример

Пример см. в примере GetLineCount.

CRichEditCtrl::GetLineCount

Извлекает количество строк в объекте CRichEditCtrl .

int GetLineCount() const;

Возвращаемое значение

Количество строк в этом CRichEditCtrl объекте.

Замечания

Дополнительные сведения см EM_GETLINECOUNT . в пакете SDK для Windows.

Пример

int nLineLength, nLineIndex, nLineCount = m_myRichEditCtrl.GetLineCount();
CString strText, strLine;

// Dump every line of text of the rich edit control.
for (int i = 0; i < nLineCount; i++)
{
   nLineIndex = m_myRichEditCtrl.LineIndex(i);
   nLineLength = m_myRichEditCtrl.LineLength(nLineIndex);
   m_myRichEditCtrl.GetLine(i, strText.GetBufferSetLength(nLineLength + 1),
                            nLineLength);
   strText.SetAt(nLineLength, _T('\0')); // null terminate
   strText.ReleaseBuffer(nLineLength + 1);

   TRACE(_T("line %d: '%s'\r\n"), i, strText);
}

CRichEditCtrl::GetModify

Определяет, было ли изменено содержимое этого CRichEditCtrl объекта.

BOOL GetModify() const;

Возвращаемое значение

Ненулевое значение, если текст в этом CRichEditCtrl объекте был изменен; в противном случае — значение 0.

Замечания

Windows поддерживает внутренний флаг, указывающий, было ли изменено содержимое элемента управления расширенными изменениями. Этот флаг очищается при первом создании элемента управления редактирования и может быть снят путем вызова SetModify функции-члена.

Дополнительные сведения см EM_GETMODIFY . в пакете SDK для Windows.

Пример

// Reset the modified state only if the text has been modified.
if (m_myRichEditCtrl.GetModify())
   m_myRichEditCtrl.SetModify(FALSE);

CRichEditCtrl::GetOptions

Извлекает параметры, заданные в настоящее время для элемента управления расширенными изменениями.

UINT GetOptions() const;

Возвращаемое значение

Сочетание значений флага текущего параметра. Список этих значений см fOptions . в сообщении, как описано в EM_SETOPTIONS пакете SDK для Windows.

CRichEditCtrl::GetParaFormat

Возвращает атрибуты форматирования абзаца текущего выделенного фрагмента.

DWORD GetParaFormat(PARAFORMAT& pf) const;  DWORD GetParaFormat(PARAFORMAT2& pf) const;

Параметры

pf
В первой версии указатель на PARAFORMAT структуру для хранения атрибутов форматирования абзаца текущего выделенного фрагмента.

Во второй версии указатель на PARAFORMAT2 структуру, которая является расширением Rich Edit 2.0 в PARAFORMAT структуре, в которой хранятся атрибуты форматирования символов по умолчанию.

Возвращаемое значение

Член dwMaskpfданных . Он задает атрибуты форматирования абзаца, согласованные во всем текущем выборе.

Замечания

Если выбрано несколько абзацов, pf получает атрибуты первого выбранного абзаца. Возвращаемое значение указывает, какие атрибуты согласованы по всему выбору.

Дополнительные сведения см. в сообщении EM_GETPARAFORMAT и PARAFORMATPARAFORMAT2 структурах в пакете SDK для Windows.

Пример

Пример см. в примере CRichEditCtrl::SetParaFormat.

CRichEditCtrl::GetPunctuation

Возвращает текущие знаки препинания в элементе управления расширенными изменениями.

BOOL GetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc) const;

Параметры

fType
Флаг типа препинания, как описано в fType параметре EM_GETPUNCTUATION пакета SDK для Windows.

lpPunc
Указатель на PUNCTUATION структуру, как описано в пакете SDK для Windows.

Возвращаемое значение

Ненулевое значение, если операция выполнена успешно, в противном случае — значение 0.

Замечания

Эта функция-член доступна только в азиатских версиях операционной системы.

CRichEditCtrl::GetRect

Извлекает прямоугольник форматирования для этого CRichEditCtrl объекта.

void GetRect(LPRECT lpRect) const;

Параметры

lpRect
CRect или указатель на RECT объект для получения прямоугольника форматирования этого CRichEditCtrl объекта.

Замечания

Прямоугольник форматирования — это ограничивающий прямоугольник для текста. Это значение не зависит от размера CRichEditCtrl объекта.

Дополнительные сведения см EM_GETRECT . в пакете SDK для Windows.

Пример

Пример см. в примере LimitText.

CRichEditCtrl::GetRedoName

Извлекает тип следующего доступного действия в очереди повтора, если таковой имеется.

UNDONAMEID GetRedoName() const;

Возвращаемое значение

В случае успешного выполнения возвращает UNDONAMEID тип перечисления, GetRedoName указывающий тип следующего действия в очереди повтора элемента управления. Если очередь повтора пуста или если действие повторного входа в очереди имеет неизвестный тип, GetRedoName возвращает значение 0.

Замечания

Типы действий, которые можно отменить или повторить, включают ввод, удаление, перетаскивание, вырезание и вставку операций. Эти сведения могут быть полезны для приложений, которые предоставляют расширенный пользовательский интерфейс для операций отмены и повтора, например раскрывающийся список повторяемых действий.

CRichEditCtrl::GetSel

Извлекает границы текущего выделенного фрагмента в этом CRichEditCtrl объекте.

void GetSel(CHARRANGE& cr) const;

void GetSel(
    long& nStartChar,
    long& nEndChar) const;

Параметры

cr
Ссылка на CHARRANGE структуру для получения границ текущего выделенного фрагмента.

nStartChar
Отсчитываемый от нуля индекс первого символа в текущем выборе.

nEndChar
Отсчитываемый от нуля индекс последнего символа в текущем выборе.

Замечания

Две формы этой функции предоставляют альтернативные способы получения границ для выделения. Краткое описание этих форм:

  • GetSel(cr) Эта форма использует структуру CHARRANGE со своими cpMin элементами для cpMax возврата границ.

  • GetSel(nStartChar,nEndChar) Эта форма возвращает границы в параметрах nStartChar и.nEndChar

Выбор включает в себя все, если начальное (cpMin или nStartChar) равно 0, а конецcpMax ( или nEndChar) — 1.

Дополнительные сведения см. в статье EM_EXGETSEL "Сообщение и CHARRANGE структура" в пакете SDK для Windows.

Пример

// Set the selection to be all characters after the current selection.
long nStartChar, nEndChar;

m_myRichEditCtrl.GetSel(nStartChar, nEndChar);
m_myRichEditCtrl.SetSel(nEndChar, -1);

CRichEditCtrl::GetSelectionCharFormat

Возвращает атрибуты форматирования символов текущего выделенного фрагмента.

DWORD GetSelectionCharFormat(CHARFORMAT& cf) const;  DWORD GetSelectionCharFormat(CHARFORMAT2& cf) const;

Параметры

cf
В первой версии указатель на CHARFORMAT структуру для получения атрибутов форматирования символов текущего выделенного фрагмента.

Во второй версии указатель на CHARFORMAT2 структуру, которая является расширением Rich Edit 2.0 в CHARFORMAT структуре для получения атрибутов форматирования символов текущего выбора.

Возвращаемое значение

Член dwMaskcfданных . Он задает атрибуты форматирования символов, согласованные в текущем выборе.

Замечания

Параметр cf получает атрибуты первого символа в текущем выборе. Возвращаемое значение указывает, какие атрибуты согласованы по всему выбору.

Дополнительные сведения см. в сообщении EM_GETCHARFORMAT и CHARFORMATCHARFORMAT2 структурах в пакете SDK для Windows.

Пример

Пример см. в примере SetSelectionCharFormat.

CRichEditCtrl::GetSelectionType

Определяет тип выделения в этом CRichEditCtrl объекте.

WORD GetSelectionType() const;

Возвращаемое значение

Флаги, указывающие содержимое текущего выделенного фрагмента. Сочетание следующих флагов:

  • SEL_EMPTY Указывает, что текущий выбор отсутствует.

  • SEL_TEXT Указывает, что текущий фрагмент содержит текст.

  • SEL_OBJECT Указывает, что текущий выбор содержит хотя бы один элемент OLE.

  • SEL_MULTICHAR Указывает, что текущий фрагмент содержит несколько символов текста.

  • SEL_MULTIOBJECT Указывает, что текущий выбор содержит несколько объектов OLE.

Замечания

Дополнительные сведения см EM_SELECTIONTYPE . в пакете SDK для Windows.

Пример

// Dump the selection text only if it contains at least one text character.
if (m_myRichEditCtrl.GetSelectionType() & (SEL_TEXT | SEL_MULTICHAR))
{
   CString strText = m_myRichEditCtrl.GetSelText();

   TRACE(_T("selection text is '%s'.\r\n"), strText);
}

CRichEditCtrl::GetSelText

Извлекает текст из текущего выделенного фрагмента в этом CRichEditCtrl объекте.

long GetSelText(LPSTR lpBuf) const;  CString GetSelText() const;

Параметры

lpBuf
Указатель на буфер для получения текста в текущем выделенном фрагменте.

Возвращаемое значение

Зависит от формы:

  • GetSelText(lpBuf) Количество символов, скопированных в lpBuf, не включая завершение null.

  • GetSelText( ) Строка, содержащая текущий выбор.

Замечания

Если вы используете первую форму, необходимо убедиться, GetSelText(lpBuf)что буфер достаточно велик для получения текста. Вызов GetSel , чтобы определить количество символов в текущем выборе.

Дополнительные сведения см EM_GETSELTEXT . в пакете SDK для Windows.

Пример

Пример см. в примере CRichEditCtrl::GetSelectionType.

CRichEditCtrl::GetTextLength

Извлекает длину текста в символах в этом CRichEditCtrl объекте, не включая завершающийся пустой символ.

long GetTextLength() const;

Возвращаемое значение

Длина текста в этом CRichEditCtrl объекте.

Замечания

Дополнительные сведения см WM_GETTEXTLENGTH . в пакете SDK для Windows.

Пример

// Limit the rich edit controls text to the number of
// characters currently in it.
m_myRichEditCtrl.LimitText(m_myRichEditCtrl.GetTextLength());

CRichEditCtrl::GetTextLengthEx

Вычисляет длину текста в элементе управления расширенными изменениями.

long GetTextLengthEx(
    DWORD dwFlags,
    UINT uCodePage = -1) const;

Параметры

dwFlags
Значение, указывающее метод, используемый при определении длины текста. Этот элемент может быть одним или несколькими значениями, перечисленными в элементе флагов, описанных GETTEXTLENGTHEX в пакете SDK для Windows.

uCodePage
Кодовая страница для перевода (CP_ACP для кодовой страницы ANSI, 1200 для Юникода).

Возвращаемое значение

Количество символов или байтов в элементе управления редактированием. Если несовместимые флаги были заданы, dwFlagsэта функция-член возвращается E_INVALIDARG.

Замечания

GetTextLengthEx предоставляет дополнительные способы определения длины текста. Она поддерживает функциональные возможности Rich Edit 2.0. Дополнительные сведения см. в разделе "Расширенные элементы управления изменениями " в SDKKfor для Windows.

CRichEditCtrl::GetTextMode

Извлекает текущий текстовый режим и отменяет уровень элемента управления расширенными изменениями.

UINT GetTextMode() const;

Возвращаемое значение

Набор битовых флагов из TEXTMODE типа перечисления, как описано в пакете SDK для Windows. Флаги указывают текущий текстовый режим и уровень отмены элемента управления.

CRichEditCtrl::GetTextRange

Возвращает указанный диапазон символов.

int GetTextRange(
    int nFirst,
    int nLast,
    CString& refString) const;

Параметры

nFirst
Индекс позиции символа, непосредственно предшествующий первому символу в диапазоне.

nLast
Позиция символа сразу после последнего символа в диапазоне.

refString
Ссылка на CString объект, который получит текст.

Возвращаемое значение

Количество скопированных символов, не включая завершающийся символ NULL.

Замечания

Дополнительные сведения см EM_GETTEXTRANGE . в пакете SDK для Windows.

GetTextRange поддерживает функциональные возможности Rich Edit 2.0. Дополнительные сведения см. в разделе "Расширенные элементы управления изменениями " в SDKKfor для Windows.

CRichEditCtrl::GetUndoName

Извлекает тип следующего доступного действия в очереди отмены, если таковой имеется.

UNDONAMEID GetUndoName() const;

Возвращаемое значение

Если действие отмены находится в очереди отмены элемента управления, возвращает тип перечисления UNDONAMEID, GetUndoName указывающий тип следующего действия в очереди. Если очередь отмены пуста или если действие отмены в очереди имеет неизвестный тип, GetUndoName возвращает значение 0.

Замечания

Типы действий, которые можно отменить или повторить, включают ввод, удаление, перетаскивание, вырезание и вставку операций. Эти сведения могут быть полезны для приложений, которые предоставляют расширенный пользовательский интерфейс для операций отмены и повтора, например раскрывающийся список действий, которые могут быть отменены.

CRichEditCtrl::GetWordWrapMode

Извлекает текущие параметры упаковки слов и критических слов для элемента управления расширенными изменениями.

UINT GetWordWrapMode() const;

Возвращаемое значение

Текущие параметры упаковки слов и разбиения слов. Эти параметры описаны в EM_SETWORDWRAPMODE пакете SDK для Windows.

Замечания

Эта функция-член доступна только для версий операционной системы на азиатском языке.

CRichEditCtrl::HideSelection

Изменяет видимость выделения.

void HideSelection(
    BOOL bHide,
    BOOL bPerm);

Параметры

bHide
Указывает, следует ли отображать или скрывать выделение, TRUE чтобы скрыть выделение.

bPerm
Указывает, должно ли это изменение видимости выделения быть постоянным.

Замечания

Если bPerm это TRUEтак, он изменяет ECO_NOHIDESEL параметр для этого CRichEditCtrl объекта. Краткое описание этого параметра см. в разделе SetOptions. Эту функцию можно использовать для задания всех параметров этого CRichEditCtrl объекта.

Дополнительные сведения см EM_HIDESELECTION . в пакете SDK для Windows.

Пример

// Show the selection and make it permanent.
m_myRichEditCtrl.HideSelection(FALSE, TRUE);

CRichEditCtrl::LimitText

Ограничивает длину текста, который пользователь может ввести в элемент управления редактированием.

void LimitText(long nChars = 0);

Параметры

nChars
Указывает длину (в байтах) текста, в который пользователь может ввести. Если этот параметр равен 0 (значение по умолчанию), длина текста имеет значение 64 КБ.

Замечания

Изменение ограничения текста ограничивает только текст, который пользователь может ввести. Он не влияет на любой текст, уже размещенный в элементе управления редактированием, и не влияет на длину текста, скопированного в CWndэлемент управления SetWindowText редактирования функцией-членом. Если приложение использует SetWindowText функцию для размещения большего текста в элементе управления редактированием, чем указано в вызове LimitText, пользователь может удалить любой текст в элементе управления редактирования. Однако ограничение текста не позволит пользователю заменить существующий текст новым текстом, если удаление текущего выделенного фрагмента не приведет к снижению предела текста.

Примечание.

Для ограничения текста каждый элемент OLE считается одним символом.

Дополнительные сведения см EM_EXLIMITTEXT . в пакете SDK для Windows.

Пример

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myRichEditCtrl.GetDC();
pDC->GetTextMetrics(&tm);
m_myRichEditCtrl.ReleaseDC(pDC);

CRect r;
m_myRichEditCtrl.GetRect(&r);
m_myRichEditCtrl.LimitText(r.Width() / tm.tmAveCharWidth);

CRichEditCtrl::LineFromChar

Извлекает номер строки строки, содержащей указанный индекс символов.

long LineFromChar(long nIndex) const;

Параметры

nIndex
Содержит отсчитываемое от нуля значение индекса для нужного символа в тексте элемента управления редактирования или содержит -1. Если nIndex значение равно -1, оно указывает текущую строку, то есть строку, содержащую курсор.

Возвращаемое значение

Отсчитываемый от нуля номер строки, содержащей индекс символов, заданный nIndex. Если nIndex значение равно -1, возвращается число строки, содержащей первый символ выделенного фрагмента. Если выбор отсутствует, возвращается текущий номер строки.

Замечания

Индекс символов — это число символов с начала элемента управления расширенными изменениями. Для подсчета символов элемент OLE считается одним символом.

Дополнительные сведения см EM_EXLINEFROMCHAR . в пакете SDK для Windows.

Пример

// The index of the char to get information on.
int nIndex = 11;

CString strText;

m_myRichEditCtrl.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Dump the index, character and line number.
TRACE(_T("nIndex = %d, character = %c, line = %d\r\n"),
      nIndex, strText[0], m_myRichEditCtrl.LineFromChar(nIndex));

CRichEditCtrl::LineIndex

Извлекает символьный индекс строки в этом CRichEditCtrl объекте.

int LineIndex(int nLine = -1) const;

Параметры

nLine
Содержит значение индекса для нужной строки в тексте элемента управления редактирования или содержит -1. Если nLine значение равно -1, оно указывает текущую строку, то есть строку, содержащую курсор.

Возвращаемое значение

Символьный индекс строки, указанной в nLine или -1, если указанный номер строки больше числа строк в элементе управления редактированием.

Замечания

Индекс символов — это число символов с начала элемента управления расширенными изменениями до указанной строки.

Дополнительные сведения см EM_LINEINDEX . в пакете SDK для Windows.

Пример

// The string for replacing.
LPCTSTR lpszmyString = _T("Hello, I'm the new second line.");

int nBegin, nEnd, nIndex;

// Replace the second line, if it exists, of the rich edit control
// with the text lpszmyString.
nIndex = m_myRichEditCtrl.LineIndex(1);
if ((nBegin = nIndex) != -1)
{
   nEnd = nBegin + m_myRichEditCtrl.LineLength(nIndex);
   m_myRichEditCtrl.SetSel(nBegin, nEnd);
   m_myRichEditCtrl.ReplaceSel(lpszmyString);
}

CRichEditCtrl::LineLength

Извлекает длину строки в элементе управления расширенными изменениями.

int LineLength(int nLine = -1) const;

Параметры

nLine
Задает индекс символа в строке, длина которой должна быть извлечена. Если этот параметр равен -1, возвращается длина текущей строки (строка, содержащая курсор), не включая длину выделенного текста в строке. Если LineLength вызывается для элемента управления редактированием в одной строке, этот параметр игнорируется.

Возвращаемое значение

Если LineLength вызывается для элемента управления редактированием с несколькими строками, возвращаемое значение является длиной (в TCHAR) строки, указанной в nLine. Он не включает символ возврата каретки в конце строки. При LineLength вызове элемента управления редактирования в одной строке возвращаемое значение — длина TCHARтекста в элементе управления редактирования. Если nLine значение больше числа символов в элементе управления, возвращаемое значение равно нулю.

Замечания

Используйте функцию-член LineIndex , чтобы получить символьный индекс для заданного номера строки в этом CRichEditCtrl объекте.

Дополнительные сведения см EM_LINELENGTH . в пакете SDK для Windows.

Пример

Пример см. в примере LineIndex.

CRichEditCtrl::LineScroll

Прокручивает текст элемента управления редактирования с несколькими строками.

void LineScroll(
    int nLines,
    int nChars = 0);

Параметры

nLines
Указывает количество строк для прокрутки по вертикали.

nChars
Указывает количество позиций символов для горизонтальной прокрутки. Это значение игнорируется, если элемент управления расширенными ES_RIGHTES_CENTER изменениями имеет либо стиль. Стили редактирования указаны в Create.

Замечания

Элемент управления редактирования не прокручивается по вертикали после последней строки текста в элементе управления редактирования. Если текущая строка плюс количество строк, указанных nLines в элементе управления редактированием, превышает общее количество строк в элементе управления редактированием, значение корректируется таким образом, чтобы последняя строка элемента управления редактированием прокручивалась в верхней части окна управления редактированием.

LineScroll можно использовать для прокрутки по горизонтали до последнего символа любой строки.

Дополнительные сведения см EM_LINESCROLL . в пакете SDK для Windows.

Пример

Пример см. в примере GetFirstVisibleLine.

CRichEditCtrl::Paste

Вставляет данные из буфера обмена CRichEditCtrl в точку вставки, расположение курсора.

void Paste();

Замечания

Данные вставляются только в том случае, если буфер обмена содержит данные в распознаваемом формате.

Дополнительные сведения см WM_PASTE . в пакете SDK для Windows.

Пример

// Replace all of the text with the text in the clipboard.
m_myRichEditCtrl.SetSel(0, -1);
m_myRichEditCtrl.Paste();

CRichEditCtrl::PasteSpecial

Вставляет данные в определенный формат буфера обмена в этот CRichEditCtrl объект.

void PasteSpecial(
    UINT nClipFormat,
    DWORD dvAspect = 0,
    HMETAFILE hMF = 0);

Параметры

nClipFormat
Формат буфера обмена для вставки в этот CRichEditCtrl объект.

dvAspect
Аспект устройства для получения данных из буфера обмена.

hMF
Дескриптор метафайла, содержащего знаковое представление объекта, который будет вставлен.

Замечания

Новый материал вставляется в точку вставки, расположение курсора.

Дополнительные сведения см EM_PASTESPECIAL . в пакете SDK для Windows.

Пример

// Paste the data from the clipboard as text.
m_myRichEditCtrl.PasteSpecial(CF_TEXT);

CRichEditCtrl::PosFromChar

Извлекает координаты клиентской области указанного символа в элементе управления редактированием.

CPoint PosFromChar(UINT nChar) const;

Параметры

nChar
Отсчитываемый от нуля индекс символа.

Возвращаемое значение

Позиция символа (x, y). Для элемента управления редактированием в одной строке координата y всегда равна нулю.

Замечания

Дополнительные сведения см EM_POSFROMCHAR . в пакете SDK для Windows.

CRichEditCtrl::Redo

Переопределяет следующее действие в очереди повторного входа элемента управления.

BOOL Redo();

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Дополнительные сведения см EM_REDO . в пакете SDK для Windows.

CRichEditCtrl::ReplaceSel

Заменяет текущий выбор в этом CRichEditCtrl объекте указанным текстом.

void ReplaceSel(
    LPCTSTR lpszNewText,
    BOOL bCanUndo = FALSE);

Параметры

lpszNewText
Указатель на строку, завершающую значение NULL, содержащую замещающий текст.

bCanUndo
Чтобы указать, что эта функция может быть отменена, задайте для параметра TRUEзначение . Значение по умолчанию: FALSE.

Замечания

Чтобы заменить весь текст в этом CRichEditCtrl объекте, используйте CWnd::SetWindowText.

Если текущего выделения нет, замещающий текст вставляется в точку вставки, то есть текущее расположение курсора.

Эта функция отформатирует вставленный текст с существующим форматированием символов. При замене всего диапазона текста (путем вызова SetSel(0,-1) перед вызовом ReplaceSelимеется конец символа абзаца, который сохраняет форматирование предыдущего абзаца, который наследуется вновь вставленным текстом.

Дополнительные сведения см EM_REPLACESEL . в пакете SDK для Windows.

Пример

Пример см. в примере LineIndex.

CRichEditCtrl::RequestResize

Заставляет этот CRichEditCtrl объект отправлять EN_REQUESTRESIZE сообщения уведомления в родительское окно.

void RequestResize();

Замечания

Эта функция полезна во время CWnd::OnSize обработки бездонного CRichEditCtrl объекта.

Дополнительные сведения см. в сообщении EM_REQUESTRESIZE и разделе "Бездонные элементы управления расширенными изменениями " статьи "Сведения о элементах управления расширенными изменениями " в пакете SDK для Windows.

CRichEditCtrl::SetAutoURLDetect

Задает элемент управления расширенными изменениями для автоматического обнаружения URL-адреса.

BOOL SetAutoURLDetect(BOOL bEnable = TRUE);

Параметры

bEnable
Указывает, установлен ли элемент управления для автоматического обнаружения URL-адреса. Если TRUEон включен. Если FALSEон отключен.

Возвращаемое значение

Ноль в случае успешного выполнения, в противном случае ненулевое значение. Например, сообщение может завершиться ошибкой из-за нехватки памяти.

Замечания

Если этот параметр включен, элемент управления расширенными изменениями сканирует текст, чтобы определить, соответствует ли он стандартному формату URL-адреса. Список этих форматов URL-адресов см EM_AUTOURLDETECT . в пакете SDK для Windows.

Примечание.

Не устанавливайте значение SetAutoURLDetectTRUE , если элемент управления редактированием использует эффект для текста, отличного CFE_LINK от URL-адресов. SetAutoURLDetect включает этот эффект для URL-адресов и отключает его для всех остальных текстов. Дополнительные сведения о эффекте CFE_LINK см. в EN_LINK.

CRichEditCtrl::SetBackgroundColor

Задает цвет фона для этого CRichEditCtrl объекта.

COLORREF SetBackgroundColor(
    BOOL bSysColor,
    COLORREF cr);

Параметры

bSysColor
Указывает, должен ли цвет фона иметь системное значение. Если это значение равно TRUE, cr игнорируется.

cr
Запрошенный цвет фона. Используется только в том FALSEслучаеbSysColor.

Возвращаемое значение

Предыдущий цвет фона для этого CRichEditCtrl объекта.

Замечания

Цвет фона можно задать для системного значения или указанного COLORREF значения.

Дополнительные сведения см. в статье EM_SETBKGNDCOLOR "Сообщение и COLORREF структура" в пакете SDK для Windows.

Пример

// Use red as the background color.
m_myRichEditCtrl.SetBackgroundColor(FALSE, RGB(255, 0, 0));

CRichEditCtrl::SetDefaultCharFormat

Задает атрибуты форматирования символов для нового текста в этом CRichEditCtrl объекте.

BOOL SetDefaultCharFormat(CHARFORMAT& cf);
BOOL SetDefaultCharFormat(CHARFORMAT2& cf);

Параметры

cf
В первой версии указатель на CHARFORMAT структуру, содержащую новые атрибуты форматирования символов по умолчанию.

Во второй версии указатель на CHARFORMAT2 структуру, которая является расширением CHARFORMAT Rich Edit 2.0 в структуре, содержащей атрибуты форматирования символов по умолчанию.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Только атрибуты, указанные dwMask членом cf , изменяются этой функцией.

Дополнительные сведения см. в сообщении EM_SETCHARFORMAT и CHARFORMATCHARFORMAT2 структурах в пакете SDK для Windows.

Пример

CHARFORMAT cf = {0};

// Modify the default character format so that all new
// text is striked out and not bold.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_STRIKEOUT;
m_myRichEditCtrl.SetDefaultCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetDefaultCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_STRIKEOUT);

CRichEditCtrl::SetEventMask

Задает маску событий для этого CRichEditCtrl объекта.

DWORD SetEventMask(DWORD dwEventMask);

Параметры

dwEventMask
Новая маска событий для этого CRichEditCtrl объекта.

Возвращаемое значение

Предыдущая маска события.

Замечания

Маска события указывает, какие сообщения CRichEditCtrl уведомления объект отправляет в родительское окно.

Дополнительные сведения см EM_SETEVENTMASK . в пакете SDK для Windows.

Пример

// Set the event mask so that the parent gets notified when the text
// of the rich edit control changes.
m_myRichEditCtrl.SetEventMask(m_myRichEditCtrl.GetEventMask() |
                              ENM_CHANGE);

CRichEditCtrl::SetModify

Задает или очищает измененный флаг для элемента управления редактированием.

void SetModify(BOOL bModified = TRUE);

Параметры

bModified
Значение TRUE указывает, что текст был изменен, а значение FALSE указывает, что оно не изменено. По умолчанию измененный флаг устанавливается.

Замечания

Измененный флаг указывает, был ли изменен текст в элементе управления редактирования. Он автоматически устанавливается, когда пользователь изменяет текст. Его значение можно получить с GetModify помощью функции-члена.

Дополнительные сведения см EM_SETMODIFY . в пакете SDK для Windows.

Пример

Пример см. в примере GetModify.

CRichEditCtrl::SetOLECallback

Предоставляет этому CRichEditCtrl объекту IRichEditOleCallback объект для доступа к ресурсам и сведениям, связанным с OLE.

BOOL SetOLECallback(IRichEditOleCallback* pCallback);

Параметры

pCallback
Указатель на IRichEditOleCallback объект, который этот CRichEditCtrl объект будет использовать для получения ресурсов и сведений, связанных с OLE.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Этот CRichEditCtrl объект вызовет IUnknown::AddRef увеличение количества использования для COM-объекта, указанного в pCallback.

Дополнительные сведения см. в статье EM_SETOLECALLBACK "Сообщение и IRichEditOleCallback интерфейс" в пакете SDK для Windows.

CRichEditCtrl::SetOptions

Задает параметры для этого CRichEditCtrl объекта.

void SetOptions(
    WORD wOp,
    DWORD dwFlags);

Параметры

wOp
Указывает тип операции. Одно из следующих значений:

  • ECOOP_SET Задайте для параметров параметры, указанные в параметре dwFlags.

  • ECOOP_OR Объедините текущие параметры с указанными dwFlags.

  • ECOOP_AND Сохраняйте только те текущие параметры, которые также указаны dwFlags.

  • ECOOP_XOR Логически исключаемые или текущие параметры с указанными dwFlags.

dwFlags
Расширенные параметры редактирования. Значения флага перечислены в разделе "Примечания".

Замечания

Параметры могут быть сочетанием следующих значений:

  • ECO_AUTOWORDSELECTION Автоматическое выделение слов при двойном щелчке мыши.

  • ECO_AUTOVSCROLL Автоматически прокручивает текст справа на 10 символов, когда пользователь вводит символ в конце строки. Когда пользователь нажимает клавишу ВВОД, элемент управления прокручивает весь текст обратно в положение нулю.

  • ECO_AUTOHSCROLL Автоматически прокручивает текст вверх по одной странице, когда пользователь нажимает клавишу ВВОД на последней строке.

  • ECO_NOHIDESEL Отрицает поведение по умолчанию для элемента управления редактированием. Поведение по умолчанию скрывает выделение, когда элемент управления теряет фокус ввода и показывает выбор, когда элемент управления получает фокус ввода. При указании ECO_NOHIDESELвыделенный текст перевернут, даже если элемент управления не имеет фокуса.

  • ECO_READONLY Запрещает пользователю вводить или редактировать текст в элементе управления редактирования.

  • ECO_WANTRETURN Указывает, что возврат каретки будет вставлен, когда пользователь нажимает клавишу ВВОД при вводе текста в элемент управления многострочного редактирования в диалоговом окне. Если этот стиль не указан, нажатие клавиши ВВОД отправляет команду в родительское окно элемента управления с расширенными изменениями, которое имитирует нажатие кнопки по умолчанию родительского окна (например, кнопка "ОК" в диалоговом окне). Этот стиль не влияет на элемент управления редактированием в одной строке.

  • ECO_SAVESEL Сохраняет выделение, когда элемент управления теряет фокус. По умолчанию все содержимое элемента управления выбирается при восстановлении фокуса.

  • ECO_VERTICAL Рисует текст и объекты в вертикальном направлении. Доступно только для азиатских языков.

Дополнительные сведения см EM_SETOPTIONS . в пакете SDK для Windows.

Пример

// Add auto horizontal and vertical scrolling.
m_myRichEditCtrl.SetOptions(ECOOP_OR, ECO_AUTOVSCROLL |
                                          ECO_AUTOHSCROLL);

CRichEditCtrl::SetParaFormat

Задает атрибуты форматирования абзаца для текущего выбора в этом CRichEditCtrl объекте.

BOOL SetParaFormat(PARAFORMAT& pf);
BOOL SetParaFormat(PARAFORMAT2& pf);

Параметры

pf
В первой версии указатель на PARAFORMAT структуру, содержащую новые атрибуты форматирования абзаца по умолчанию.

Во второй версии указатель на PARAFORMAT2 структуру, которая является расширением Rich Edit 2.0 в PARAFORMAT структуре, в которой хранятся атрибуты форматирования символов по умолчанию.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Только атрибуты, указанные dwMask членом pf , изменяются этой функцией.

Дополнительные сведения см. в сообщении EM_SETPARAFORMAT и PARAFORMATPARAFORMAT2 структурах в пакете SDK для Windows.

Пример

PARAFORMAT pf;

// Modify the paragraph format so that the text is centered.
pf.cbSize = sizeof(PARAFORMAT);
pf.dwMask = PFM_ALIGNMENT;
pf.wAlignment = PFA_CENTER;
m_myRichEditCtrl.SetParaFormat(pf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetParaFormat(pf);
ASSERT(pf.dwMask &PFM_ALIGNMENT);
ASSERT(pf.wAlignment == PFA_CENTER);

CRichEditCtrl::SetPunctuation

Задает знак препинания в элементе управления расширенными изменениями.

BOOL SetPunctuation(
    UINT fType,
    PUNCTUATION* lpPunc);

Параметры

fType
Флаг препинания. Список возможных значений см fType . в разделе "Параметр EM_SETPUNCTUATION " в пакете SDK для Windows.

lpPunc
Указатель на PUNCTUATION структуру, как описано в пакете SDK для Windows.

Возвращаемое значение

Ненулевое значение, если выполнено успешно, в противном случае — значение 0.

Замечания

Эта функция-член доступна только для азиатских версий операционной системы.

CRichEditCtrl::SetReadOnly

ECO_READONLY Изменяет параметр для этого CRichEditCtrl объекта.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Параметры

bReadOnly
Указывает, должен ли этот CRichEditCtrl объект быть только для чтения.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Краткое описание этого параметра см. в разделе SetOptions. Эту функцию можно использовать для задания всех параметров этого CRichEditCtrl объекта.

Дополнительные сведения см EM_SETREADONLY . в пакете SDK для Windows.

Пример

// Set the rich edit control to be read-only.
m_myRichEditCtrl.SetReadOnly(TRUE);
ASSERT(m_myRichEditCtrl.GetStyle() & ES_READONLY);

CRichEditCtrl::SetRect

Задает прямоугольник форматирования для этого CRichEditCtrl объекта.

void SetRect(LPCRECT lpRect);

Параметры

lpRect
CRect или указатель на объект RECT , указывающий новые границы прямоугольника форматирования.

Замечания

Прямоугольник форматирования — это ограничивающий прямоугольник для текста. Ограничивающий прямоугольник не зависит от размера полного окна управления редактированием. При первом создании этого CRichEditCtrl объекта прямоугольник форматирования совпадает с размером клиентской области окна. Используйте SetRect для создания прямоугольника форматирования большего или меньшего размера, чем в окне полного редактирования.

Дополнительные сведения см EM_SETRECT . в пакете SDK для Windows.

Пример

CRect r;

m_myRichEditCtrl.GetRect(&r);

// Reduce the formatting rect of the rich edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(0, 20);
   m_myRichEditCtrl.SetRect(&r);
}

CRichEditCtrl::SetSel

Задает выделение в этом CRichEditCtrl объекте.

void SetSel(
    long nStartChar,
    long nEndChar);

void SetSel(CHARRANGE& cr);

Параметры

nStartChar
Отсчитываемый от нуля индекс первого символа для выбора.

nEndChar
Отсчитываемый от нуля индекс последнего символа выделения.

cr
CHARRANGE Структура, содержащая границы текущего выделенного фрагмента.

Замечания

Две формы этой функции предоставляют альтернативные способы задания границ для выделения. Краткое описание этих форм:

  • SetSel(cr) Эта форма использует структуру CHARRANGE со своими cpMin элементами для cpMax задания границ.

  • SetSel(nStartChar,nEndChar) Эта форма использует параметры nStartChar и nEndChar для задания границ.

Курсор помещается в конец выбора, указанного большими индексами начального (cpMin или nStartChar) и конца (cpMax или nEndChar) индексов. Эта функция прокручивает содержимое CRichEditCtrl , чтобы курсор был видимым.

Чтобы выбрать весь текст в этом CRichEditCtrl объекте, вызовите SetSel начальный индекс 0 и конечный индекс – 1.

Дополнительные сведения см. в статье EM_EXSETSEL "Сообщение и CHARRANGE структура" в пакете SDK для Windows.

Пример

Пример см. в примере GetSel.

CRichEditCtrl::SetSelectionCharFormat

Задает атрибуты форматирования символов для текста в текущем выделенном фрагменте этого CRichEditCtrl объекта.

BOOL SetSelectionCharFormat(CHARFORMAT& cf);
BOOL SetSelectionCharFormat(CHARFORMAT2& cf);

Параметры

cf
В первой версии указатель на CHARFORMAT структуру, содержащую новые атрибуты форматирования символов для текущего выбора.

Во второй версии указатель на CHARFORMAT2 структуру, которая является расширением Rich Edit 2.0 в CHARFORMAT структуре, содержащей новые атрибуты форматирования символов для текущего выбора.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Только атрибуты, указанные dwMask членом cf , изменяются этой функцией.

Дополнительные сведения см EM_SETCHARFORMAT . в статье и CHARFORMATCHARFORMAT2 структурах в пакете SDK для Windows.

Пример

CHARFORMAT cf;

// Modify the selection format so that the selected text is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetSelectionCharFormat(cf);

// Verify the settings are what is expected.
m_myRichEditCtrl.GetSelectionCharFormat(cf);
ASSERT((cf.dwMask & (CFM_STRIKEOUT | CFM_BOLD)) ==
       (CFM_STRIKEOUT | CFM_BOLD));
ASSERT((cf.dwEffects & (CFE_STRIKEOUT | CFE_BOLD)) == CFE_BOLD);

CRichEditCtrl::SetTargetDevice

Задает целевое устройство и ширину линии, используемую для форматирования WYSIWYG (то, что вы видите) в этом CRichEditCtrl объекте.

BOOL SetTargetDevice(
    HDC hDC,
    long lLineWidth);

BOOL SetTargetDevice(
    CDC& dc,
    long lLineWidth);

Параметры

hDC
Обработка контекста устройства для нового целевого устройства.

lLineWidth
Ширина строки, используемая для форматирования.

dc
CDC для нового целевого устройства.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Если эта функция выполнена успешно, элемент управления расширенными изменениями владеет контекстом устройства, переданным в качестве параметра. В этом случае вызывающая функция не должна уничтожать контекст устройства.

Дополнительные сведения см EM_SETTARGETDEVICE . в пакете SDK для Windows.

Пример

// First obtain a pointer to a printer DC.
CPageSetupDialog psDlg;
if (IDOK == psDlg.DoModal())
{
   CDC *pMyPrinterDC = CDC::FromHandle(psDlg.CreatePrinterDC());

   // Get line width information from the printer.
   long lLineWidth = ::MulDiv(pMyPrinterDC->GetDeviceCaps(PHYSICALWIDTH),
                              1440, pMyPrinterDC->GetDeviceCaps(LOGPIXELSX));

   // Set the printer as the target device.
   m_myRichEditCtrl.SetTargetDevice(*pMyPrinterDC, lLineWidth);

   pMyPrinterDC->DeleteDC();
}

CRichEditCtrl::SetTextMode

Задает текстовый режим или уровень отмены и повтора для элемента управления расширенными изменениями.

BOOL SetTextMode(UINT fMode);

Параметры

fMode
Задает новые параметры текстового режима элемента управления и параметры уровня отмены. Список возможных значений см. в параметре EM_SETTEXTMODE режима в пакете SDK для Windows.

Возвращаемое значение

Ноль в случае успешного выполнения, в противном случае ненулевое значение.

Замечания

Описание текстовых режимов см EM_SETTEXTMODE . в пакете SDK для Windows.

Эта функция-член завершается ошибкой, если элемент управления содержит текст. Чтобы убедиться, что элемент управления пуст, отправьте WM_SETTEXT сообщение с пустой строкой.

CRichEditCtrl::SetUndoLimit

Задает максимальное количество действий, которые могут храниться в очереди отмены.

UINT SetUndoLimit(UINT nLimit);

Параметры

nLimit
Указывает максимальное количество действий, которые могут храниться в очереди отмены. Установите значение нулю, чтобы отключить отмену.

Возвращаемое значение

Новое максимальное количество действий отмены для элемента управления расширенными изменениями.

Замечания

По умолчанию максимальное количество действий в очереди отмены — 100. Если увеличить это число, для размещения нового числа должно быть достаточно доступной памяти. Для повышения производительности установите ограничение на наименьшее возможное значение.

CRichEditCtrl::SetWordCharFormat

Задает атрибуты форматирования символов для выбранного в данный момент слова в этом CRichEditCtrl объекте.

BOOL SetWordCharFormat(CHARFORMAT& cf);
BOOL SetWordCharFormat(CHARFORMAT2& cf);

Параметры

cf
В первой версии указатель на CHARFORMAT структуру, содержащую новые атрибуты форматирования символов для выбранного слова.

Во второй версии указатель на CHARFORMAT2 структуру, которая является расширением Rich Edit 2.0 в CHARFORMAT структуре, содержащей новые атрибуты форматирования символов для выбранного слова.

Возвращаемое значение

Ненулевое значение при успешном выполнении; в противном случае — значение 0.

Замечания

Только атрибуты, указанные dwMask членом cf , изменяются этой функцией.

Дополнительные сведения см. в сообщении EM_SETCHARFORMAT и CHARFORMATCHARFORMAT2 структурах в пакете SDK для Windows.

Пример

CHARFORMAT cf;

// Modify the word format so that the selected word is
// displayed in bold and not striked out.
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_STRIKEOUT | CFM_BOLD;
cf.dwEffects = CFE_BOLD;
m_myRichEditCtrl.SetWordCharFormat(cf);

CRichEditCtrl::SetWordWrapMode

Задает параметры упаковки и разбиения слов для элемента управления расширенными изменениями.

UINT SetWordWrapMode(UINT uFlags) const;

Параметры

uFlags
Параметры, заданные для упаковки слов и разбиения слов. Список возможных параметров см EM_SETWORDWRAPMODE . в пакете SDK для Windows.

Возвращаемое значение

Текущие параметры упаковки слов и разбиения слов.

Замечания

Это сообщение доступно только в азиатских версиях операционной системы.

CRichEditCtrl::StopGroupTyping

Запрещает элементу управления собирать дополнительные действия ввода в текущее действие отмены.

void StopGroupTyping();

Замечания

В элементе управления сохраняется следующее действие ввода (если таковые есть) в новое действие в очереди отмены.

Дополнительные сведения см EM_STOPGROUPTYPING . в пакете SDK для Windows.

CRichEditCtrl::StreamIn

Заменяет текст в этом CRichEditCtrl объекте текстом из указанного входного потока.

long StreamIn(
    int nFormat,
    EDITSTREAM& es);

Параметры

nFormat
Флаги, указывающие форматы входных данных. Дополнительные сведения см. в разделе «Примечания».

es
EDITSTREAM структура, указывающая входной поток. Дополнительные сведения см. в разделе «Примечания».

Возвращаемое значение

Число символов, считываемых из входного потока.

Замечания

Значение nFormat должно быть одним из следующих значений:

  • SF_TEXT Указывает только чтение текста.

  • SF_RTF Указывает чтение текста и форматирования.

Любое из этих значений можно объединить с SFF_SELECTION. Если SFF_SELECTION задано, StreamIn замените текущий выбор содержимым входного потока. Если он не указан, StreamIn заменяет все содержимое этого CRichEditCtrl объекта.

В параметре EDITSTREAMesуказывается функция обратного вызова, которая заполняет буфер текстом. Эта функция обратного вызова вызывается многократно, пока входной поток не будет исчерпан.

Дополнительные сведения см. в статье EM_STREAMIN "Сообщение и EDITSTREAM структура" в пакете SDK для Windows.

Пример

// My callback procedure that reads the rich edit control contents
// from a file.
static DWORD CALLBACK 
MyStreamInCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
   CFile* pFile = (CFile*) dwCookie;

   *pcb = pFile->Read(pbBuff, cb);

   return 0;
}

 

// The example code.

// The file from which to load the contents of the rich edit control.
CFile cFile(TEXT("My_RichEdit_InFile.rtf"), CFile::modeRead);
EDITSTREAM es;

es.dwCookie = (DWORD)&cFile;
es.pfnCallback = MyStreamInCallback;
m_myRichEditCtrl.StreamIn(SF_RTF, es);

CRichEditCtrl::StreamOut

Записывает содержимое этого CRichEditCtrl объекта в указанный выходной поток.

long StreamOut(
    int nFormat,
    EDITSTREAM& es);

Параметры

nFormat
Флаги, указывающие форматы выходных данных. Дополнительные сведения см. в разделе «Примечания».

es
EDITSTREAM структура, указывающая выходной поток. Дополнительные сведения см. в разделе «Примечания».

Возвращаемое значение

Число символов, записанных в выходной поток.

Замечания

Значение nFormat должно быть одним из следующих значений:

  • SF_TEXT Указывает только написание текста.

  • SF_RTF Указывает написание текста и форматирования.

  • SF_RTFNOOBJS Указывает написание текста и форматирования, заменяя элементы OLE пробелами.

  • SF_TEXTIZED Указывает написание текста и форматирования с текстовыми представлениями элементов OLE.

Любое из этих значений можно объединить с SFF_SELECTION. Если SFF_SELECTION задано, StreamOut записывает текущий выбор в выходной поток. Если он не указан, StreamOut записывает все содержимое этого CRichEditCtrl объекта.

В параметре EDITSTREAMesуказывается функция обратного вызова, которая заполняет буфер текстом. Эта функция обратного вызова вызывается многократно, пока выходной поток не будет исчерпан.

Дополнительные сведения см. в статье EM_STREAMOUT "Сообщение и EDITSTREAM структура" в пакете SDK для Windows.

Пример

// My callback procedure that writes the rich edit control contents
// 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);

CRichEditCtrl::Undo

Отменяет последнюю операцию в элементе управления расширенными изменениями.

BOOL Undo();

Возвращаемое значение

Ненулевое значение, если операция отмены выполнена успешно; в противном случае — значение 0.

Замечания

Кроме того, можно отменить операцию отмены. Например, можно восстановить удаленный текст с помощью первого вызова Undo. Пока не существует промежуточных операций редактирования, вы можете снова удалить текст с помощью второго вызова Undo.

Дополнительные сведения см EM_UNDO . в пакете SDK для Windows.

Пример

Пример см. в примере CanUndo.

См. также

Пример WORDPAD для MFC
CWnd Класса
Диаграмма иерархии
CEdit Класса
CRichEditView Класса