Partager via


IDWriteTextLayout ::HitTestTextRange, méthode (dwrite.h)

L’application appelle cette fonction pour obtenir un ensemble de métriques de test d’accès correspondant à une plage de positions de texte. L’une des utilisations main consiste à implémenter la sélection de surbrillance de la chaîne de texte.

La fonction retourne E_NOT_SUFFICIENT_BUFFER, ce qui équivaut à HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), lorsque la taille de mémoire tampon de hitTestMetrics est trop petite pour contenir toutes les régions calculées par la fonction. Dans ce cas, la fonction définit la valeur de sortie *actualHitTestMetricsCount sur le nombre de géométries calculées.

L’application est chargée d’allouer une nouvelle mémoire tampon de plus grande taille et d’appeler à nouveau la fonction.

Une bonne valeur à utiliser comme valeur initiale pour maxHitTestMetricsCount peut être calculée à partir de l’équation suivante :

maxHitTestMetricsCount = lineCount * maxBidiReorderingDepth

où lineCount est obtenu à partir de la valeur de l’argument de sortie *actualLineCount (à partir de la fonction IDWriteTextLayout ::GetLineLengths) et de la valeur maxBidiReorderingDepth de la structure DWRITE_TEXT_METRICS de l’argument de sortie *textMetrics (à partir de la fonction IDWriteFactory ::CreateTextLayout).

Syntaxe

HRESULT HitTestTextRange(
                  UINT32                  textPosition,
                  UINT32                  textLength,
                  FLOAT                   originX,
                  FLOAT                   originY,
  [out, optional] DWRITE_HIT_TEST_METRICS *hitTestMetrics,
                  UINT32                  maxHitTestMetricsCount,
  [out]           UINT32                  *actualHitTestMetricsCount
);

Paramètres

textPosition

Type : UINT32

Première position de texte de la plage spécifiée.

textLength

Type : UINT32

Nombre de positions de la plage spécifiée.

originX

Type : FLOAT

Emplacement X du pixel d’origine à gauche de la zone de disposition. Ce décalage est ajouté aux métriques de test d’accès retournées.

originY

Type : FLOAT

Emplacement du pixel d’origine Y en haut de la zone de disposition. Ce décalage est ajouté aux métriques de test d’accès retournées.

[out, optional] hitTestMetrics

Type : DWRITE_HIT_TEST_METRICS*

Lorsque cette méthode retourne, contient un pointeur vers une mémoire tampon de la géométrie de sortie englobant entièrement la plage de positions spécifiée. La mémoire tampon doit être au moins aussi grande que maxHitTestMetricsCount.

maxHitTestMetricsCount

Type : UINT32

Nombre maximal de cases hitTestMetrics peut contenir dans sa mémoire tampon.

[out] actualHitTestMetricsCount

Type : UINT32*

Nombre réel de géométries hitTestMetrics contient dans sa mémoire tampon.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête dwrite.h
Bibliothèque Dwrite.lib
DLL Dwrite.dll

Voir aussi

IDWriteTextLayout