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


Метод ITextHost::TxNotify (textserv.h)

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

Синтаксис

HRESULT TxNotify(
  [in] DWORD iNotify,
  [in] void  *pv
);

Параметры

[in] iNotify

Тип: DWORD

Событие для уведомления узла. Один из кодов уведомлений EN_ .

[in] pv

Тип: void*

Дополнительные данные, зависящие от iNotify.

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

Тип: HRESULT

При успешном выполнении метода возвращается S_OK.

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

Комментарии

Обратите внимание, что существует две основные категории событий: прямые и отложенные . Прямые события отправляются немедленно, так как они нуждаются в некоторой обработке, например EN_PROTECTED. Отложенные события отправляются после выполнения всей обработки; Таким образом, элемент управления находится в стабильном состоянии. Примерами отложенных уведомлений являются EN_CHANGE, EN_ERRSPACE и EN_SELCHANGE.

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

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

Ниже приведен список уведомлений, которые могут быть отправлены.

Уведомление Значение
EN_CHANGE Отправляется после обновления системой экрана, когда пользователь выполняет действие, которое могло изменить текст в элементе управления.
EN_DROPFILES Отправляется при получении сообщения WM_DROPFILES или уведомления IDropTarget::D ragEnter .
EN_ERRSPACE Отправляется, когда элементу управления не удается выделить достаточно памяти для выполнения указанного запроса.
EN_HSCROLL Отправляется, когда пользователь щелкает горизонтальную полосу прокрутки элемента управления перед обновлением экрана.
EN_KILLFOCUS Отправляется, когда элемент управления теряет фокус клавиатуры.
EN_LINK Отправляется, когда элемент управления редактированием получает различные сообщения, например сообщения о щелчке мышью, когда указатель мыши находится на тексте, который имеет CFE_LINK эффект.
EN_MAXTEXT Отправляется, когда текущая вставка текста превышает максимальное число символов для элемента управления.
EN_OLEOPFAILED Отправляется при сбое действия пользователя в объекте OLE.
EN_PROTECTED Отправляется, когда пользователь выполняет действие, которое изменяет защищенный диапазон текста.
EN_REQUESTRESIZE Отправляется, если содержимое элемента управления полнофункционированным редактированием отличается от размера окна элемента управления.
EN_SAVECLIPBOARD Отправляется при уничтожении элемента управления редактированием. Текстовый узел должен указывать, следует ли вызывать OleFlushClipboard . Данные, указывающие количество символов и объектов для очистки, отправляются в структуру данных ENSAVECLIPBOARD . Значение маски не имеет значения.
EN_SELCHANGE Отправляется при изменении текущего выделения. Также отправляется структура данных SELCHANGE , которая указывает новый диапазон выбора для типа данных, с которыми в данный момент выполняется выбор. Управляется с помощью маски ENM_SELCHANGE .
EN_SETFOCUS Отправляется, когда элемент управления редактированием получает фокус клавиатуры. Дополнительные данные не отправляются; нет маски.
EN_STOPNOUNDO Отправляется при выполнении действия, для которого элемент управления не может выделить достаточно памяти для поддержания состояния отмены. Если возвращается S_FALSE, действие будет остановлено; В противном случае действие будет продолжено.
EN_UPDATE Отправляется до того, как элемент управления редактированием запрашивает перерисовку измененных данных или текста. Дополнительные данные не отправляются. Это событие управляется с помощью маски ENM_UPDATE . Rich Edit 2.0 и более поздних версий: Маска ENM_UPDATE игнорируется, а код уведомления EN_UPDATE всегда отправляется. Однако, когда Microsoft Rich Edit 3.0 эмулирует Microsoft Rich Edit 1.0, это уведомление управляется маской ENM_UPDATE .
EN_VSCROLL Отправляется, когда пользователь щелкает вертикальную полосу прокрутки элемента управления редактированием или когда пользователь прокручивает колесико мыши над элементом управления редактированием до обновления экрана. Это контролируется с помощью маски ENM_SCROLL ; дополнительные данные не отправляются.
 
ПримечаниеEN_MSGFILTER не отправляется в TxNotify. Чтобы отфильтровать сообщения окна, используйте TxSendMessage.
 

Требования

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

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

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

EM_SETEVENTMASK

EN_CHANGE

EN_DROPFILES

EN_ERRSPACE

EN_HSCROLL

EN_KILLFOCUS

EN_LINK

EN_MAXTEXT

EN_OLEOPFAILED

EN_PROTECTED

EN_REQUESTRESIZE

EN_SAVECLIPBOARD

EN_SELCHANGE

EN_SETFOCUS

EN_STOPNOUNDO

EN_UPDATE

EN_VSCROLL

ITextHost

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

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