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


Функция обратного вызова 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

Количество TCHAR в тексте элемента управления редактированием. Для текста 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 преобразует строку Юникода, предоставленную rich edit, с помощью WideCharToMultiByte, а затем соответствующим образом преобразует индексы.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)

См. также раздел

EM_FINDWORDBREAK

EM_SETWORDBREAKPROC

EM_SETWORDBREAKPROCEX

EditWordBreakProcEx

Другие ресурсы

Справочные материалы

SendMessage