Come usare le informazioni sulle interruzioni di riga e word
Un controllo rich edit chiama una funzione denominata routine word break per trovare interruzioni tra le parole e per determinare dove può interrompere le righe. Il controllo usa queste informazioni durante l'esecuzione di operazioni di ritorno a capo automatico e durante l'elaborazione delle combinazioni di tasti CTRL+FRECCIA SINISTRA e CTRL+FRECCIA DESTRA. Un'applicazione può inviare messaggi a un controllo di modifica avanzato per sostituire la routine di word break predefinita, recuperare le informazioni sull'interruzione di parola e determinare la riga su cui si trova un determinato carattere.
Informazioni importanti
Tecnologie
Prerequisiti
- C/C++
- Programmazione dell'interfaccia utente di Windows
Istruzioni
Usare le informazioni sull'interruzione di riga e word
Le procedure di word break per i controlli di modifica avanzata sono simili a quelle per i controlli di modifica, ma dispongono di funzionalità aggiuntive: le procedure di word break per entrambi i tipi di controlli possono determinare se un carattere è un delimitatore e può trovare l'interruzione di parola più vicina prima o dopo la posizione specificata. Un delimitatore è un carattere che contrassegna la fine di una parola, ad esempio uno spazio. In genere, in un controllo di modifica, si verifica un'interruzione di parola solo dopo i delimitatori. Tuttavia, le regole diverse si applicano alla maggior parte delle lingue asiatiche.
Le procedure di word break per i controlli di modifica avanzata raggruppano anche i caratteri in classi di caratteri, ognuno identificato da un valore nell'intervallo 0x00 tramite 0x0F. Le interruzioni si verificano dopo delimitatori o tra caratteri di classi diverse. Pertanto, una routine di word break con classi diverse per caratteri alfanumerici e punteggiatura troverebbe due interruzioni di parola nella stringa "Win.doc" (prima e dopo il punto).
La classe di un carattere può essere combinata con zero o più flag di word break per formare un valore a 8 bit. Quando si eseguono operazioni di ritorno a capo automatico, un controllo di modifica rtf usa flag di word break per determinare dove può interrompere le righe. Rich Edit usa i flag di word break seguenti.
Flag | Descrizione |
---|---|
WBF_BREAKAFTER | Le righe possono essere interrotte dopo il carattere. |
WBF_BREAKLINE | Il carattere è un delimitatore. I delimitatori contrassegnano le estremità delle parole. Le righe possono essere interrotte dopo i delimitatori. |
WBF_ISWHITE | Il carattere è uno spazio vuoto. Gli spazi vuoti finali non sono inclusi nella lunghezza di una riga durante il wrapping. |
Il valore WBF_BREAKAFTER viene utilizzato per consentire il wrapping dopo un carattere che non contrassegna la fine di una parola, ad esempio un trattino.
È possibile sostituire la routine di word break predefinita per un controllo di modifica avanzato con la propria routine usando il messaggio EM_edizione Standard TWORDBREAKPROC. Per altre informazioni sulle procedure di word break, vedere la descrizione della funzione EditWordBreakProc.
Nota
Questa sostituzione non è consigliata per Microsoft Rich Edit 2.0 e versioni successive, a causa della complessità dell'interruzione delle parole multilingue.
Per Microsoft Rich Edit 1.0, è possibile usare il messaggio EM_edizione Standard TWORDBREAKPROCEX per sostituire la routine di word break estesa predefinita con una funzione EditWordBreakProcEx. Questa funzione fornisce informazioni aggiuntive sul testo, ad esempio il set di caratteri. È possibile utilizzare il messaggio di EM_GETWORDBREAKPROCEX per recuperare l'indirizzo della routine di word break estesa corrente. Si noti che Microsoft Rich Edit 2.0 e versioni successive non supportaNo EditWordBreakProcEx, EM_GETWORDBREAKPROCEX e EM_edizione Standard TWORDBREAKPROCEX.
È possibile utilizzare il messaggio EM_FINDWORDBREAK per trovare le interruzioni di parola o per determinare la classe e i flag di word break di un carattere. A sua volta, il controllo chiama la procedura di word break per ottenere le informazioni richieste.
Per determinare la riga in cui si verifica un determinato carattere, è possibile usare il messaggio di EM_EXLINEFROMCHAR .
Argomenti correlati