Så här använder du Information om ord- och radbrytning
En omfattande redigeringskontroll anropar en funktion som kallas en ordbrytningsprocedur för att hitta brytningar mellan ord och för att avgöra var den kan bryta linjer. Kontrollen använder den här informationen när den utför radbrytningsoperationer och vid bearbetning av CTRL+VÄNSTERPIL och CTRL+HÖGERPIL-kombinationer. Ett program kan skicka meddelanden till en omfattande redigeringskontroll för att ersätta standardproceduren för ordbrytning, för att hämta ordbrytningsinformation och för att avgöra vilken rad ett visst tecken hamnar på.
Vad du behöver veta
Teknologier
Förutsättningar
- C/C++
- Programmering av Windows-användargränssnitt
Instruktioner
Använda information om ord- och radbrytning
Ordbrytningsprocedurer för omfattande redigeringskontroller liknar dem för redigeringskontroller, men de har ytterligare funktioner: ordbrytningsprocedurer för båda typerna av kontroller kan avgöra om ett tecken är en avgränsare och kan hitta närmaste ordbrytning före eller efter den angivna positionen. En avgränsare är ett tecken som markerar slutet på ett ord, till exempel ett blanksteg. I en redigeringskontroll sker vanligtvis ett ordbrott endast efter avgränsare. Olika regler gäller dock för de flesta asiatiska språk.
Word-break-procedurer för omfattande redigeringskontroller grupperar även tecken i teckenklasser, som var och en identifieras av ett värde i intervallet 0x00 via 0x0F. Pauser sker antingen efter avgränsare eller mellan tecken i olika klasser. Därför skulle en ordbrytningsprocedur med olika klasser för alfanumeriska tecken och skiljetecken hitta två ordbrytningar i strängen "Win.doc" (före och efter perioden).
Ett teckens klass kan kombineras med noll eller fler ordbrytningsflaggor för att bilda ett 8-bitars värde. När du utför radbrytningsoperationer använder en avancerad redigeringskontroll orddelningsflaggor för att avgöra var den kan bryta rader. Rich Edit använder följande ordbrytningsflaggor.
Flagga | Beskrivning |
---|---|
WBF_BREAKAFTER | Rader kan brytas efter ett tecken. |
WBF_BREAKLINE | Tecknet är en avgränsare. Avgränsare markerar ordsluten. Linjer kan brytas efter avgränsare. |
WBF_ISWHITE | Tecknet är ett mellanslagstecken. Avslutande blankstegstecken ingår inte i längden på en rad vid omslutning. |
Värdet WBF_BREAKAFTER används för att tillåta omslutning efter ett tecken som inte markerar slutet på ett ord, till exempel ett bindestreck.
Du kan ersätta standardproceduren för ordbrytning för en omfattande redigeringskontroll med din egen procedur med hjälp av EM_SETWORDBREAKPROC meddelande. Mer information om ordbrytningsprocedurer finns i beskrivningen av funktionen EditWordBreakProc.
Not
Den här ersättningen rekommenderas inte för Microsoft Rich Edit 2.0 och senare, på grund av komplexiteten i flerspråkig ordbrytning.
För Microsoft Rich Edit 1.0 kan du använda EM_SETWORDBREAKPROCEX-meddelandet för att ersätta standardproceduren för utökad ordbrytning med en EditWordBreakProcEx-funktion . Den här funktionen innehåller ytterligare information om texten, till exempel teckenuppsättningen. Du kan använda meddelandet EM_GETWORDBREAKPROCEX för att hämta adressen för den aktuella utökade ordbrytningsproceduren. Observera att Microsoft Rich Edit 2.0 och senare inte stöder EditWordBreakProcEx, EM_GETWORDBREAKPROCEXoch EM_SETWORDBREAKPROCEX.
Du kan använda meddelandet EM_FINDWORDBREAK för att hitta ordbrytningar eller för att fastställa ett teckens klass- och ordbrytningsflaggor. Kontrollen anropar i sin tur sin ordbrytningsfunktion för att hämta den begärda informationen.
Om du vill avgöra vilken rad ett visst tecken hamnar på kan du använda meddelandet EM_EXLINEFROMCHAR.
Relaterade ämnen