Метод IUIAutomation6::AddActiveTextPositionChangedEventHandler (uiautomationclient.h)
Регистрирует метод, который обрабатывается при изменении активной позиции текста.
Важный
Клиенты службы автоматизации пользовательского интерфейса Майкрософт должны использовать интерфейс интерфейс IUIAutomationEventHandlerGroup для регистрации прослушивателей событий вместо отдельных методов регистрации событий, определенных здесь, а также в различных интерфейсе IUIAutomation пространствах имен.
Синтаксис
HRESULT AddActiveTextPositionChangedEventHandler(
[in] IUIAutomationElement *element,
[in] TreeScope scope,
[in] IUIAutomationCacheRequest *cacheRequest,
[in] IUIAutomationActiveTextPositionChangedEventHandler *handler
);
Параметры
[in] element
Указатель на элемент автоматизации пользовательского интерфейса, связанный с обработчиком событий.
[in] scope
Область обработки событий; то есть, находятся ли они на самом элементе, или на его предках и потомках.
[in] cacheRequest
Указатель на запрос кэша или NULL, если кэширование не требуется.
[in] handler
Указатель на объект, обрабатывающий событие изменения активной позиции текста.
Возвращаемое значение
Если этот метод выполнен успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT.
Замечания
Перед реализацией обработчика событий необходимо ознакомиться с проблемами потоков, описанными в разделе Основные сведения о проблемах потоков.
Активная позиция текста обозначается событием навигации внутри или между текстовыми элементами только для чтения (например, веб-браузерами, документами в формате PDF) или документами EPUB), используя закладки (или идентификаторы фрагментов для ссылки на расположение в ресурсе). Примеры:
- Переход к закладке на той же веб-странице
- Переход к закладке на другой веб-странице
- Активация ссылки на другое расположение в одном PDF-файле
- Активация ссылки на другое расположение в одном EPUB
Используйте этот обработчик событий для синхронизации визуального расположения закладки или целевого объекта с расположением фокуса в текстовом элементе только для чтения, который может отличаться при использовании закладок или идентификаторов фрагментов.
Например, при вызове той же привязки страницы (<a href="#C4">Jump to Chapter 4</a> ...<h1><a name="C4">Chapter 4</a></h1>
) визуальное расположение обновляется, но клиент автоматизации пользовательского интерфейса остается в исходном расположении. Это приводит к таким действиям, как чтение текста или перемещение команд следующего элемента, начиная с исходного расположения, а не нового расположения.
Аналогичным образом активация нового URI страницы (с идентификатором фрагмента: (<a href="www.blah.com#C4">Jump to Chapter 4</a>
) загружает новую страницу и переходит к указанной закладке, но оставляет клиенты автоматизации пользовательского интерфейса в верхней части страницы.
Для редактируемых текстовых элементов, таких как Edit и rich Edit, можно прослушивать событие SelectionChanged.
Событие может быть доставлено в обработчик событий после отмены подписки обработчика, если событие получено одновременно с запросом на отмену подписки. Рекомендуется следовать стандарту модели объектов компонента (COM) и не уничтожать объект обработчика событий до тех пор, пока его число ссылок не достигнет нуля. Удаление обработчика событий сразу после отмены подписки на события может привести к нарушению доступа, если событие доставлено поздно.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 10 версии 1809 [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server версии 1709 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | uiautomationclient.h (include UIAutomation.h) |
См. также
IUIAutomation6::RemoveActiveTextPositionChangedEventHandler, интерфейс IUIAutomation6