Share via


ITextRangeProvider::Move-Methode (uiautomationcore.h)

Verschiebt den Textbereich um die angegebene Anzahl von Texteinheiten vorwärts oder rückwärts.

Syntax

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

Parameter

unit

[in] count

Typ: int

Die Anzahl von Texteinheiten, um die der Textbereich verschoben werden soll. Ein positiver Wert verschiebt den Textbereich nach vorne.

Ein negativer Wert verschiebt den Textbereich nach hinten. Null hat keine Auswirkung.

[out, retval] pRetVal

Typ: int*

Die Anzahl der tatsächlich verschobenen Texteinheiten. Dies kann kleiner als die angeforderte Zahl sein, wenn einer der neuen Textbereichsendpunkte größer oder kleiner als die von der ITextProvider::D ocumentRange-Methode abgerufenen Endpunkte ist. Dieser Wert kann negativ sein, wenn die Navigation in rückwärts gerichteter Richtung erfolgt.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

ITextRangeProvider::Move sollte nur den Textbereich verschieben, um einen anderen Teil des Texts zu umfassen. Es sollte den Text in keiner Weise ändern.

Für einen nicht entarteten (nicht leeren) Textbereich sollte ITextRangeProvider::Move den Textbereich normalisieren und verschieben, indem die folgenden Schritte ausgeführt werden.

  1. Reduzieren Sie den Textbereich auf einen entarteten (leeren) Bereich am Startendpunkt.
  2. Verschieben Sie den resultierenden Textbereich im Dokument bei Bedarf nach hinten an den Anfang der angeforderten Einheitsgrenze.
  3. Verschieben Sie den Textbereich im Dokument um die angeforderte Anzahl von Texteinheitengrenzen vorwärts oder rückwärts.
  4. Erweitern Sie den Textbereich aus dem entarteten Zustand, indem Sie den Endendpunkt um eine angeforderte Texteinheitsgrenze nach vorne verschieben.
Wenn einer der vorherigen Schritte fehlschlägt, sollte der Textbereich unverändert bleiben. Wenn der Textbereich nicht bis zur angeforderten Anzahl von Texteinheiten verschoben werden kann, sondern um eine kleinere Anzahl von Texteinheiten verschoben werden kann, sollte der Textbereich um die kleinere Anzahl von Texteinheiten verschoben werden, und pRetVal sollte auf die Anzahl der erfolgreich verschobenen Texteinheiten festgelegt werden.

Bei einem entarteten Textbereich sollte ITextRangeProvider::Move einfach die Texteinfügemarke um die angegebene Anzahl von Texteinheiten verschieben.

Beim Verschieben eines Textbereichs sollte der Anbieter die Grenzen von eingebetteten Objekten im Text ignorieren.

ITextRangeProvider::Move sollte sowohl ausgeblendeten als auch sichtbaren Text berücksichtigen.

Wenn ein textbasiertes Steuerelement die durch den Unit-Parameter angegebene Texteinheit nicht unterstützt, sollte der Anbieter die nächst größere unterstützte Texteinheit ersetzen.

Die Größe der Texteinheiten, von der kleinsten Einheit bis zur größten, ist wie folgt.

  • Zeichen
  • Format
  • Word
  • Linie
  • Paragraph
  • Page
  • Dokument

Bereichsverhalten bei EinheitTextUnit::Format

TextUnit::Format als Einheitswert positioniert die Grenze eines Textbereichs, um den Bereich basierend auf freigegebenen Textattributen (Format) des Texts innerhalb des Bereichs zu erweitern oder zu verschieben. Die Verwendung der Formattexteinheit sollte jedoch keinen Textbereich über die Grenze eines eingebetteten Objekts verschieben oder erweitern, z. B. ein Bild oder link. Weitere Informationen finden Sie unter Benutzeroberflächenautomatisierung Texteinheiten oder Text- und TextRange-Steuerelementmuster.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile uiautomationcore.h (include UIAutomation.h)

Siehe auch

Konzept

ITextProvider

ITextRangeProvider

Referenz

Text- und TextRange-Steuerelementmuster

Übersicht über die Benutzeroberflächenautomatisierungs-Anbieter