Метод 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 ; дополнительные данные не отправляются. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | textserv.h |
DLL | Msftedit.dll |
См. также раздел
Основные понятия
Справочные материалы