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 |