Поделиться через


Функция обратного вызова EDITWORDBREAKPROCA (winuser.h)

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

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

Синтаксис

EDITWORDBREAKPROCA Editwordbreakproca;

int Editwordbreakproca(
  [in] LPSTR lpch,
  [in] int ichCurrent,
  [in] int cch,
  [in] int code
)
{...}

Параметры

[in] lpch

Тип: LPTSTR

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

[in] ichCurrent

Тип: int

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

[in] cch

Тип: int

Количество TCHARs в тексте элемента управления редактированием. Для текста ANSI это число байтов; для текста Юникода это число WCHAR.

[in] code

Тип: int

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

Ценность Значение
WB_CLASSIFY
Извлекает флаги класса символов и разбиения слов символа в указанной позиции. Это значение предназначено для использования с расширенными элементами управления редактированием.
WB_ISDELIMITER
Проверяет, является ли символ в указанной позиции разделителем.
WB_LEFT
Находит начало слова слева от указанной позиции.
WB_LEFTBREAK
Находит разделитель конца слова слева от указанной позиции. Это значение предназначено для использования с расширенными элементами управления редактированием.
WB_MOVEWORDLEFT
Находит начало слова слева от указанной позиции. Это значение используется при обработке клавиш CTRL+LEFT. Это значение предназначено для использования с расширенными элементами управления редактированием.
WB_MOVEWORDRIGHT
Находит начало слова справа от указанной позиции. Это значение используется во время обработки клавиш CTRL+RIGHT. Это значение предназначено для использования с расширенными элементами управления редактированием.
WB_RIGHT
Находит начало слова справа от указанной позиции. Это полезно в элементах управления редактирования, выровненных по правому краю.
WB_RIGHTBREAK
Находит разделитель конца слова справа от указанной позиции. Это полезно в элементах управления редактирования, выровненных по правому краю. Это значение предназначено для использования с расширенными элементами управления редактированием.

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

Тип: int

Если параметр кода указывает WB_ISDELIMITER, возвращаемое значение ненулевое (TRUE), если символ в указанной позиции является разделителем или ноль, если он отсутствует. Если параметр кода указывает WB_CLASSIFY, возвращаемое значение — это класс символов и флаги разрывов слов символа в указанной позиции. В противном случае возвращаемое значение является индексом в начале слова в буфере текста.

Замечания

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

Приложение должно установить функцию обратного вызова, указав адрес функции обратного вызова в сообщении EM_SETWORDBREAKPROC.

Rich Edit 1.0:Microsoft Rich Edit 1.0 передает только символы ANSI в EditWordBreakProc. Для элементов управления расширенными изменениями можно также использовать сообщение EM_SETWORDBREAKPROCEX для замены расширенной процедуры разбиения слов по умолчанию функцией обратного вызова EditWordBreakProcEx. Эта функция предоставляет дополнительные сведения о тексте, например набор символов.

Rich Edit 2.0 и более поздних версий:Microsoft Rich Edit 2.0 и более поздних версий передают только символы Юникода в EditWordBreakProc. Таким образом, приложение ANSI преобразует строку Юникода с расширенными изменениями с помощью WideCharToMultiByte, а затем перевести индексы соответствующим образом.

Заметка

Заголовок winuser.h определяет EDITWORDBREAKPROC в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка winuser.h (включая Windows.h)

См. также

EM_FINDWORDBREAK

EM_SETWORDBREAKPROC

EM_SETWORDBREAKPROCEX

EditWordBreakProcEx

другие ресурсы

Справочник

SendMessage