Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Приложение вызывает эту функцию для получения набора метрик проверки попадания, соответствующих диапазону текстовых позиций. Одним из 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 |