Partager via


ITextRangeProvider ::Move, méthode (uiautomationcore.h)

Déplace la plage de texte vers l’avant ou vers l’arrière par le nombre spécifié d’unités de texte.

Syntaxe

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

Paramètres

[in] unit

Type : TextUnit

Type d’unités de texte, telles que le caractère, le mot, le paragraphe, etc.

[in] count

Type : int

Nombre d’unités de texte à déplacer. Une valeur positive déplace la plage de texte vers l’avant.

Une valeur négative déplace la plage de texte vers l’arrière. Zéro n’a aucun effet.

[out, retval] pRetVal

Type : int*

Nombre d’unités de texte réellement déplacées. Cela peut être inférieur au nombre demandé si l’un des nouveaux points de terminaison de plage de texte est supérieur ou inférieur aux points de terminaison récupérés par la méthode ITextProvider ::D ocumentRange. Cette valeur peut être négative si la navigation se produit dans la direction descendante.

Valeur de retour

Type : HRESULT

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

Remarques

ITextRangeProvider ::Move ne doit déplacer que la plage de texte pour couvrir une autre partie du texte, elle ne doit pas modifier le texte de quelque manière que ce soit.

Pour une plage de texte non dégénérée (non vide), ITextRangeProvider ::Move doit normaliser et déplacer la plage de texte en effectuant les étapes suivantes.

  1. Réduisez la plage de texte à une plage dégénérée (vide) au point de terminaison de départ.
  2. Si nécessaire, déplacez la plage de texte résultante vers l’arrière dans le document au début de la limite d’unité demandée.
  3. Déplacez la plage de texte vers l’avant ou vers l’arrière dans le document par le nombre demandé de limites d’unité de texte.
  4. Développez la plage de texte à partir de l’état dégénéré en déplaçant le point de terminaison de fin vers l’avant par une limite d’unité de texte demandée.
Si l’une des étapes précédentes échoue, la plage de texte doit rester inchangée. Si la plage de texte ne peut pas être déplacée jusqu’au nombre demandé d’unités de texte, mais peut être déplacée par un plus petit nombre d’unités de texte, la plage de texte doit être déplacée par le plus petit nombre d’unités de texte et pRetVal doit être définie sur le nombre d’unités de texte déplacées avec succès.

Pour une plage de texte dégénérée, ITextRangeProvider ::Move doit simplement déplacer le point d’insertion de texte par le nombre spécifié d’unités de texte.

Lors du déplacement d’une plage de texte, le fournisseur doit ignorer les limites des objets incorporés dans le texte.

ITextRangeProvider ::Move doit respecter le texte masqué et visible.

Si un contrôle textuel ne prend pas en charge l’unité de texte spécifiée par le paramètre unité, le fournisseur doit remplacer la prochaine unité de texte prise en charge la plus grande suivante.

La taille des unités de texte, de la plus petite à la plus grande, est la suivante.

  • Personnage
  • Format
  • Mot
  • Ligne
  • Paragraphe
  • Page
  • Document

comportement de plage de lorsque d’unité est

TextUnit::Format en tant qu’unité de place la limite d’une plage de texte pour développer ou déplacer la plage en fonction des attributs de texte partagés (format) du texte dans la plage. Toutefois, l’utilisation de l’unité de texte de format ne doit pas déplacer ou développer une plage de texte sur la limite d’un objet incorporé, telle qu’une image ou un lien hypertexte. Pour plus d’informations, consultez ui Automation Text Units ou Text and TextRange Control Patterns.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête uiautomationcore.h (include UIAutomation.h)

Voir aussi

conceptuelle

ITextProvider

ITextRangeProvider

de référence

modèles de contrôle Text et TextRange

Vue d’ensemble des fournisseurs UI Automation