Метод IDWriteTextLayout::HitTestTextRange (dwrite.h)
Приложение вызывает эту функцию для получения набора метрик проверки попадания, соответствующих диапазону текстовых позиций. Одним из main использования является реализация выделения текстовой строки.
Функция возвращает E_NOT_SUFFICIENT_BUFFER, эквивалентную HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), если размер буфера hitTestMetrics слишком мал для хранения всех регионов, вычисляемых функцией. В этом случае функция задает выходное значение *actualHitTestMetricsCount в число вычисляемых геометрических объектов.
Приложение отвечает за выделение нового буфера большего размера и повторный вызов функции.
Хорошее значение для использования в качестве начального значения для maxHitTestMetricsCount можно вычислить на основе следующей формулы:
maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth
где lineCount получается из значения выходного аргумента *actualLineCount (из функции IDWriteTextLayout::GetLineLengths), а значение maxBidiReorderingDepth — из DWRITE_TEXT_METRICS структуры выходного аргумента *textMetrics (из функции IDWriteFactory::CreateTextLayout).
Синтаксис
HRESULT HitTestTextRange(
UINT32 textPosition,
UINT32 textLength,
FLOAT originX,
FLOAT originY,
[out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
UINT32 maxHitTestMetricsCount,
[out] UINT32 *actualHitTestMetricsCount
);
Параметры
textPosition
Тип: UINT32
Первая текстовая позиция указанного диапазона.
textLength
Тип: UINT32
Количество позиций указанного диапазона.
originX
Тип: FLOAT
Расположение исходного пикселя X слева от поля макета. Это смещение добавляется к возвращаемым метрикам проверки попадания.
originY
Тип: FLOAT
Расположение исходного пикселя Y в верхней части поля макета. Это смещение добавляется к возвращаемым метрикам проверки попадания.
[out, optional] hitTestMetrics
Тип: DWRITE_HIT_TEST_METRICS*
При возврате этого метода содержит указатель на буфер выходного геометрического объекта, полностью включающий указанный диапазон позиций. Размер буфера должен быть не менее maxHitTestMetricsCount.
maxHitTestMetricsCount
Тип: UINT32
Максимальное количество полей , которые могут содержаться в буферной памяти.
[out] actualHitTestMetricsCount
Тип: UINT32*
Фактическое количество геометрических объектов , удерживаемых в буферной памятиTestMetrics .
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dwrite.h |
Библиотека | Dwrite.lib |
DLL | Dwrite.dll |