Metodo ITextRange::SetChar (tom.h)
Imposta il carattere nella posizione iniziale dell'intervallo.
Sintassi
HRESULT SetChar(
long Char
);
Parametri
Char
Tipo: long
Nuovo valore per il carattere nella posizione iniziale.
Valore restituito
Tipo: HRESULT
Il metodo restituisce un valore HRESULT . Se il metodo ha esito positivo, restituisce S_OK. Se il metodo ha esito negativo, restituisce uno dei codici di errore seguenti. Per altre informazioni sui codici di errore COM, vedere Gestione degli errori in COM.
Codice restituito | Descrizione |
---|---|
|
Il testo è protetto da scrittura. |
|
Memoria insufficiente. |
Commenti
ITextRange::SetChar consente di specificare il codice di carattere preciso da usare. Tuttavia, i valori letterali stringa con glifi simili possono essere fuorvianti.
I caratteri impostati da questo metodo sono LONG anziché un BSTR. Ciò nasconde il modo in cui vengono archiviati nell'archivio di backup, come byte, parole, lunghezza variabile e così via.
Spesso nei sistemi che non hanno il wrapping automatico delle parole, i documenti hanno ritorno a capo rigido inserito solo per le interruzioni di riga. Il codice seguente mostra un semplice, ma non perfetto, modo per convertire tale capo rigido torna in spazi vuoti per la storia associata all'intervallo r.
Sub EnableWrap(r As ITextRange) // Convert false hard CRs to soft
r.SetRange 0, 0 // r is set at start of story
While r.Move(tomParagraph) // Go to start of next paragraph
If r.MoveWhile(C1_WHITE, 1) = 0 Then // Next char isn't white space
r.Move tomCharacter, -1
r.SetChar = Asc(" ") // Replace CR by blank
End If
Wend // Loop till no more CRs in story
End Sub
In alternativa, è possibile usare quanto segue all'interno del ciclo IF.
r.MoveStart tomCharacter, -1 // Select previous char (the CR)
r = " " // Replace it with a blank
Questo approccio consente di eseguire il wrapping del testo in altre larghezze. Tuttavia, l'algoritmo non è perfetto: presuppone che un ritorno a capo duro seguito da qualsiasi spazio vuoto (vuoto, scheda, feed di linee, ritorno a capo e così via) deve essere sostituito da un vuoto. L'algoritmo presuppone inoltre che il carattere restituito a capo sia un singolo carattere come il ritorno a capo o il carattere end-of-paragrafo Unicode (EOP) 0x2029 carattere. Inoltre, la combinazione di ritorno a capo e feed di riga non corrisponde e richiederebbe la scrittura e l'esecuzione di più codice (o uso FindText(^p)
). Un'altra attenzione è che esistono altri casi, ad esempio codice misto e documentazione, in cui l'algoritmo non funziona correttamente.
Tuttavia, ITextRange::SetChar è più efficiente di un'operazione di sostituzione eseguita da un'eliminazione seguita da un inserimento. Pertanto, riscrivere il codice senza usare ITextRange::SetChar probabilmente sarebbe molto più lento.
La proprietà Char , che può eseguire la maggior parte delle operazioni che un insieme di caratteri può, ha due grandi vantaggi: può fare riferimento a qualsiasi carattere nella storia padre anziché essere limitato all'intervallo padre, ed è significativamente più veloce , poiché longs anziché oggetti range sono coinvolti. A causa di questi vantaggi, il modello a oggetti di testo (TOM) non supporta una raccolta di caratteri.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | tom.h |
DLL | Msftedit.dll |
Vedi anche
Informazioni concettuali
Riferimento