Метод ITextServices::TxSendMessage (textserv.h)

Используется узлом окна для пересылки сообщений, отправленных из его окна, в объект текстовых служб.

Синтаксис

HRESULT TxSendMessage(
  UINT    msg,
  WPARAM  wparam,
  LPARAM  lparam,
  LRESULT *plresult
);

Параметры

msg

Тип: UINT

Идентификатор сообщения.

wparam

Тип: WPARAM

WPARAM из сообщения окна.

lparam

Тип: LPARAM

LPARAM из сообщения окна.

plresult

Тип: LRESULT*

Сообщение возвращает LRESULT.

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

Тип: HRESULT

Если метод выполнен успешно, возвращаемое значение будет S_OK.

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

Код возврата Описание
E_OUTOFMEMORY
Недостаточно памяти. Сообщение NOERROR было обработано, и было предприняно некоторое действие.
S_FALSE
Сообщение не обработано. Обычно указывает, что вызывающий объект должен обработать само сообщение, возможно, путем вызова DefWindowProc.
S_MSG_KEYIGNORED
Сообщение обработано, но для нажатия клавиши не было выполнено никаких действий.

Комментарии

Обратите внимание, что из этой функции передаются два возвращаемых значения. Возвращаемое значение, которое должно быть передано обратно из процедуры окна, — plresult. Однако в некоторых случаях возвращаемый LRESULT не содержит достаточно сведений. Например, чтобы реализовать перемещение курсора вокруг элементов управления, полезно знать, был ли обработан удар клавиши (например, стрелка вправо), но проигнорирован (например, курсор уже находится в крайней правой позиции в тексте). В таких случаях дополнительные сведения могут быть возвращены с помощью возвращенного HRESULT.

WM_CHAR и WM_KEYDOWN должны возвращать значение S_MSG_KEYIGNORED при распознавании ключа или символа, но не оказывают никакого влияния, учитывая текущее состояние. Например, S_MSG_KEYIGNORED должны возвращаться в следующих случаях:

  • Любое нажатие клавиши, которое пытается переместить точку вставки в начало или конец документа или за нее; если он уже находится в начале или конце документа, соответственно.
  • Любое нажатие клавиши, которое пытается переместить точку вставки в следующую строку или после нее, когда она уже находится в последней строке; или до или перед предыдущей строкой, если она уже находится в первой строке.
  • Любая вставка символа из WM_CHAR , которая перемещает точку вставки за пределы максимальной длины элемента управления.

Требования

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

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

Основные понятия

DefWindowProc

ITextServices

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

WM_CHAR

WM_KEYDOWN

Элементы управления "Полнофункционированные изменения" без окон