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


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

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

Синтаксис

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

Параметры

unit

[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 должен учитывать как скрытый, так и видимый текст.

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

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

  • Символ
  • Формат
  • Word
  • Строка
  • Paragraph
  • Страница
  • Документ

Поведение диапазона, когда единица измерения имеет значение TextUnit::Format

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header uiautomationcore.h (включая UIAutomation.h)

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

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

ITextProvider

ITextRangeProvider

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

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

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