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 .

Uso di controlli Rich Edit

Demo dei controlli comuni di Windows (CppWindowsCommonControls)