Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De compositiestring is de huidige tekst in het compositievenster. Dit is de tekst die de IME converteert naar definitieve tekens. Elke samenstellingstekenreeks bestaat uit een of meer "onderdelen". Een zinsdeel is de kleinste combinatie van tekens die de IME kan converteren naar een definitief teken. Om de samenstellingsreeks op te halen en in te stellen, roept de toepassing respectievelijk de functies ImmGetCompositionString en ImmSetCompositionString aan.
Terwijl de gebruiker tekst invoert in het samenstellingsvenster, houdt de IME de status van de compositietekenreeks bij. Deze status omvat kenmerkgegevens, componentinformatie, typgegevens en cursorpositie. De toepassing kan de samenstellingsstatus ophalen met behulp van de functie ImmGetCompositionString.
Kenmerkgegevens worden weergegeven in een matrix van 8-bits waarden die de status van tekens in de samenstellingstekenreeks aangeeft. Alle tekens van één clausule moeten hetzelfde kenmerk hebben. De matrix bevat één waarde voor elke byte in de tekenreeks, inclusief één byte voor de eerste en tweede bytes van eventuele dubbelbytekarakters in de tekenreeks. Voor elke waarde in de matrix kunnen bits 0 tot en met 3 één combinatie van de volgende waarden zijn.
| Waarde | Betekenis |
|---|---|
| ATTR_INPUT | Teken dat door de gebruiker wordt ingevoerd. De IME moet dit teken nog converteren. |
| ATTR_INPUT_ERROR | Een foutteken dat de IME niet kan converteren. De IME kan bijvoorbeeld sommige medeklinkers niet combineren. |
| ATTR_DOEL_OMGEZET | Teken geselecteerd door de gebruiker en vervolgens geconverteerd door de IME. |
| ATTR_CONVERTED | Een teken dat door de IME al is geconverteerd. |
| ATTR_DOEL_NIET_OMGEREKEND | Het teken dat wordt geconverteerd. De gebruiker heeft dit teken geselecteerd, maar de IME heeft het nog niet geconverteerd. |
| ATTR_FIXEDCONVERTED | Tekens die de IME niet meer zal converteren. |
Alle andere waarden zijn gereserveerd. In het Japans is elk niet-omgezette teken met het ATTR_INPUT kenmerk een hiragana, katakana of alfanumeriek teken. In het Koreaans vertegenwoordigt dit kenmerk een Hangul-teken dat de IME nog niet heeft geconverteerd. In traditioneel Chinees en Vereenvoudigd Chinees kan elke IME zijn karakters binnen een bepaald bereik beperken.
De componentinformatie die is opgenomen in de status van de samenstellingstekenreeks is een matrix van 32-bits waarden die de posities van de componenten in de samenstellingsreeks specificeert. De array bevat één waarde voor elke clausule en een uiteindelijke waarde die de lengte van de volledige tekenreeks aangeeft. Elke waarde in de array specificeert de offset, in bytes, van het begin van de tekenreeks tot de clausule. De eerste waarde is altijd 0 omdat de eerste component altijd begint aan het begin van de tekenreeks. Als een tekenreeks bijvoorbeeld twee componenten heeft, heeft de componentinformatie drie waarden: de eerste waarde is 0, de tweede waarde is de verschuiving van de tweede component en de derde waarde is de lengte van de tekenreeks. Voor Unicode wordt de positie van een component geteld in Unicode-tekens en de lengte van een tekenreeks is de grootte in Unicode-tekens.
De typegegevens die zijn opgenomen in de status van de samenstellingstekenreeks, zijn een tekenreeks met null-beëindiging die de tekens vertegenwoordigt die de gebruiker op het toetsenbord invoert.
De cursorpositie in de status van de samenstellingstekenreeks is een waarde die de positie van de cursor aangeeft ten opzichte van de tekens in de compositietekenreeks. De waarde is de verschuiving, in bytes, vanaf het begin van de tekenreeks. Als deze waarde 0 is, bevindt de cursor zich direct vóór het eerste teken in de tekenreeks. Als de waarde gelijk is aan de lengte van de tekenreeks, bevindt de cursor zich direct na het laatste teken. Als de waarde 1 is, is de cursor niet aanwezig. Voor Unicode worden zowel positie als lengte gemeten in Unicode-tekens.
Uw toepassing kan de samenstellingstekenreeks of elementen van de samenstellingsstatus instellen met behulp van de functie ImmSetCompositionString. Om ervoor te zorgen dat het samenstellingsvenster het uiterlijk ervan bijwerkt op basis van deze wijzigingen, kan de toepassing met de functie een meldingsbericht verzenden naar het venster. Toepassingen die een combinatie van samenstellingsstatuselementen instellen, schakelen doorgaans meldingen uit voor alle, behalve de laatste aanroep van deze functie, zodat er slechts één meldingsbericht wordt gegenereerd voor het samenstellingsvenster.
Ten slotte ondersteunt het besturingselement bewerken twee berichten voor het wijzigen van de verwerking van samenstellingstekenreeksen door de IME. Zie EM_GETIMESTATUS en EM_SETIMESTATUSvoor meer informatie. Voor meer informatie over de bewerkingscontrole, zie Bewerkingselement.
Verwante onderwerpen