Delen via


Invoercontext

Een 'invoercontext' is een interne structuur die wordt onderhouden door de IMM. Het bevat informatie over de status van de IME en wordt gebruikt door IME-vensters. Standaard maakt en wijst het besturingssysteem een invoercontext toe aan elke thread. Binnen de thread is deze standaardinvoercontext een gedeelde resource en is gekoppeld aan elk nieuw gemaakt venster.

Als u informatie in de IME wilt ophalen of instellen, moet een IME-bewuste toepassing eerst een ingang ophalen voor de invoercontext die is gekoppeld aan een opgegeven venster. De toepassing haalt de ingang op met behulp van de functie ImmGetContext. Deze kan de opgehaalde ingang gebruiken in volgende aanroepen naar de IMM-functies om IME-waarden op te halen en in te stellen, zoals de stijl van het samenstellingsvenster, de samenstellingsstijl en de positie van het statusvenster. Zodra de toepassing klaar is met het gebruik van de context, moet deze de context vrijgeven met behulp van de functie ImmReleaseContext.

Omdat de standaardinvoercontext een gedeelde resource is, zijn alle wijzigingen die de toepassing aanbrengt, van toepassing op alle vensters in de thread. De toepassing kan dit standaardgedrag echter overschrijven door een eigen invoercontext te maken en deze te koppelen aan een of meer vensters van de thread. De wijzigingen die zijn aangebracht in een toepassingsspecifieke invoercontext zijn alleen van toepassing op de vensters die aan de context zijn gekoppeld.

Uw toepassing kan een invoercontext maken met behulp van de functie ImmCreateContext. Als u de context wilt toewijzen aan een venster, roept de toepassing de functie ImmAssociateContext aan. Deze functie retourneert een ingang naar de eerder gekoppelde invoercontext. Als de toepassing nog geen invoercontext aan het venster heeft gekoppeld, is de geretourneerde ingang voor de standaardinvoercontext. Normaal gesproken slaat de toepassing deze ingang op en wordt deze later opnieuw gekoppeld aan het venster wanneer de aangepaste invoercontext niet meer nodig is.

Zodra een invoercontext is gekoppeld aan een venster, selecteert het besturingssysteem automatisch die context wanneer het venster wordt geactiveerd en ontvangt de invoerfocus. De stijl en andere informatie in de invoercontext zijn van invloed op volgende toetsenbordinvoer voor dat venster, waarbij wordt bepaald hoe de IME werkt.

Uw toepassing moet alle aangepaste invoercontext vernietigen voordat deze wordt beƫindigd. Eerst verwijdert de toepassing de invoercontext uit elke koppeling die deze heeft gemaakt met vensters in de thread met behulp van de functie ImmAssociateContext. Vervolgens wordt de functie ImmDestroyContext aangeroepen.

Over Input Method Manager-