Condividi tramite


Metodo ITextRangeProvider::Move (uiautomationcore.h)

Sposta l'intervallo di testo avanti o indietro in base al numero specificato di unità di testo.

Sintassi

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

Parametri

unit

[in] count

Tipo: int

Numero di unità di testo da spostare. Un valore positivo sposta l'intervallo di testo in avanti.

Un valore negativo sposta l'intervallo di testo indietro. Zero non ha alcun effetto.

[out, retval] pRetVal

Tipo: int*

Numero di unità di testo effettivamente spostate. Può essere minore del numero richiesto se uno dei nuovi endpoint dell'intervallo di testo è maggiore o minore degli endpoint recuperati dal metodo ITextProvider::D ocumentRange . Questo valore può essere negativo se lo spostamento si verifica nella direzione indietro.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

ITextRangeProvider::Move deve spostare solo l'intervallo di testo in una parte diversa del testo, non deve modificare il testo in alcun modo.

Per un intervallo di testo non degenerato (non vuoto), ITextRangeProvider::Move deve normalizzare e spostare l'intervallo di testo eseguendo la procedura seguente.

  1. Comprimere l'intervallo di testo in un intervallo degenerato (vuoto) nell'endpoint iniziale.
  2. Se necessario, spostare l'intervallo di testo risultante indietro nel documento all'inizio del limite dell'unità richiesta.
  3. Spostare l'intervallo di testo avanti o indietro nel documento in base al numero richiesto di limiti di unità di testo.
  4. Espandere l'intervallo di testo dallo stato degenerato spostando l'endpoint finale avanti da un limite di unità di testo richiesto.
Se uno dei passaggi precedenti ha esito negativo, l'intervallo di testo deve essere lasciato invariato. Se l'intervallo di testo non può essere spostato fino al numero richiesto di unità di testo, ma può essere spostato da un numero minore di unità di testo, l'intervallo di testo deve essere spostato dal numero minore di unità di testo e pRetVal deve essere impostato sul numero di unità di testo spostate correttamente.

Per un intervallo di testo degenerato, ITextRangeProvider::Move deve semplicemente spostare il punto di inserimento del testo in base al numero specificato di unità di testo.

Quando si sposta un intervallo di testo, il provider deve ignorare i limiti di tutti gli oggetti incorporati nel testo.

ITextRangeProvider::Move deve rispettare il testo nascosto e visibile.

Se un controllo basato su testo non supporta l'unità di testo specificata dal parametro unità, il provider deve sostituire la successiva unità di testo supportata più grande.

Le dimensioni delle unità di testo, dalla più piccola unità alla più grande, sono le seguenti.

  • Carattere
  • Formato
  • Word
  • Grafico a linee
  • Paragraph
  • Pagina
  • Documento

Comportamento dell'intervallo quando l'unità è TextUnit::Format

TextUnit::Format come valore unità posiziona il limite di un intervallo di testo per espandere o spostare l'intervallo in base agli attributi di testo condivisi (formato) del testo all'interno dell'intervallo. Tuttavia, l'uso dell'unità di testo di formato non deve spostare o espandere un intervallo di testo oltre il limite di un oggetto incorporato, ad esempio un'immagine o un collegamento ipertestuale. Per altre informazioni, vedere Automazione interfaccia utente Unità di testo o Modelli di controllo TextRange.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione uiautomationcore.h (includere UIAutomation.h)

Vedi anche

Informazioni concettuali

ITextProvider

ITextRangeProvider

Riferimento

Modelli di controllo Text e TextRange

Cenni preliminari sui provider di automazione interfaccia utente