Méthode ITextRangeProvider ::Move (uiautomationcore.h)

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

Syntaxe

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

Paramètres

unit

[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 le sens inverse.

Valeur retournée

Type : HRESULT

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

Remarques

ITextRangeProvider ::Move doit uniquement déplacer la plage de texte pour couvrir une autre partie du texte. Il ne doit en aucun cas modifier le texte.

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 en 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 obtenue vers l’arrière dans le document jusqu’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 en fonction du 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 vers l’avant d’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 d’unités de texte demandé, 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éfini 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 en fonction du 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 d’unité , le fournisseur doit remplacer l’unité de texte prise en charge suivante.

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

  • Caractère
  • Format
  • Word
  • Ligne
  • Paragraph
  • Page
  • Document

Comportement de plage lorsque l’unité est TextUnit::Format

TextUnit::Format en tant que valeur d’unité positionne 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 au-delà de la limite d’un objet incorporé, comme une image ou un lien hypertexte. Pour plus d’informations, consultez UI Automation Unités de texte ou Modèles de contrôle Text et TextRange.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête uiautomationcore.h (incluez UIAutomation.h)

Voir aussi

Conceptuel

ITextProvider

ITextRangeProvider

Référence

Modèles de contrôle Text et TextRange

Vue d'ensemble des fournisseurs UI Automation