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


Метод ITextRangeProvider::Move (uiautomationcore.h)

Перемещает текстовый диапазон вперед или назад по указанному числу текстовых единиц.

Синтаксис

HRESULT Move(
  [in]          TextUnit unit,
  [in]          int      count,
  [out, retval] int      *pRetVal
);

Параметры

[in] unit

Тип: TextUnit

Тип текстовых единиц, таких как символ, слово, абзац и т. д.

[in] count

Тип: int

Количество перемещаемых текстовых единиц. Положительное значение перемещает диапазон текста вперед.

Отрицательное значение перемещает диапазон текста назад. Ноль не имеет эффекта.

[out, retval] pRetVal

Тип: int*

Количество фактически перемещаемых текстовых единиц. Это может быть меньше числа, если любой из новых конечных точек диапазона текста больше или меньше конечных точек, полученных методом ITextProvider::D ocumentRange. Это значение может быть отрицательным, если навигация происходит в обратном направлении.

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

Тип: HRESULT

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

Замечания

ITextRangeProvider::Move должен перемещать только диапазон текста, чтобы охватывать другую часть текста, он не должен изменять текст каким-либо образом.

Для ненулевого текстового диапазона ITextRangeProvider::Move должен нормализовать и переместить диапазон текста, выполнив следующие действия.

  1. Свернуть текстовый диапазон до дегенерированного (пустого) диапазона в начальной конечной точке.
  2. При необходимости переместите полученный текстовый диапазон назад в документе к началу запрошенной границы единицы.
  3. Переместите диапазон текста вперед или назад в документе по запрошенным числу границ текстового блока.
  4. Разверните диапазон текста из дегенерированного состояния, переместив конечную конечную точку вперед по одной запрошенной границе текстового блока.
Если какой-либо из предыдущих шагов завершится ошибкой, текстовый диапазон должен оставаться неизменным. Если диапазон текста не может быть перемещен до запрошенного количества текстовых единиц, но его можно переместить меньшим числом текстовых единиц, то диапазон текста должен быть перемещен меньшим числом текстовых единиц, а pRetVal должно быть установлено число текстовых единиц успешно перемещено.

Для дегенерированного текстового диапазона ITextRangeProvider::Move должен просто переместить точку вставки текста по указанному числу текстовых единиц.

При перемещении текстового диапазона поставщик должен игнорировать границы всех внедренных объектов в тексте.

ITextRangeProvider::Move должен учитывать как скрытый, так и видимый текст.

Если элемент управления на основе текста не поддерживает текстовое подразделение, указанное параметром единицы, поставщик должен заменить следующий поддерживаемый текстовый блок.

Размер текстовых единиц( от наименьшей единицы до наибольшего) выглядит следующим образом.

  • Характер
  • Формат
  • Слово
  • Линия
  • Параграф
  • Страница
  • Документ

поведение диапазона при единицTextUnit::Format

TextUnit::Format как единица единица позиционирует границу текстового диапазона для расширения или перемещения диапазона на основе общих текстовых атрибутов (формат) текста в диапазоне. Однако использование текстового блока форматирования не должно перемещать или развертывать текстовый диапазон по границе внедренного объекта, например изображения или гиперссылки. Дополнительные сведения см. в текстовых единиц автоматизации пользовательского интерфейса илишаблонах элементов управления TextRange и TextRange.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка uiautomationcore.h (include UIAutomation.h)

См. также

концептуальные

ITextProvider

ITextRangeProvider

Справочник

шаблонов элементов управления Text и TextRange

Обзор поставщиков автоматизации пользовательского интерфейса