Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
En "indatakontext" är en intern struktur som underhålls av IMM. Den innehåller information om status för IME och används av IME-fönster. Operativsystemet skapar och tilldelar som standard en indatakontext till varje tråd. I tråden är den här standardinmatningskontexten en delad resurs och associeras med varje fönster som skapats nyligen.
För att hämta eller ange information i IME måste ett IME-medvetet program först hämta ett handtag till indatakontexten som är associerad med ett angivet fönster. Programmet hämtar handtaget med hjälp av funktionen ImmGetContext. Den kan använda det hämtade handtaget i efterföljande anrop till IMM-funktionerna för att hämta och ange IME-värden, till exempel formatmallen för kompositionsfönstret, kompositionsformatet och statusfönstrets position. När programmet har använt kontexten måste det frigöra kontexten med hjälp av funktionen ImmReleaseContext.
Eftersom standardindatakontexten är en delad resurs gäller alla ändringar som programmet gör i alla fönster i tråden. Programmet kan dock åsidosätta det här standardbeteendet genom att skapa en egen indatakontext och associera den med ett eller flera fönster i tråden. De ändringar som görs i en programspecifik indatakontext gäller endast för de fönster som är associerade med kontexten.
Ditt program kan skapa en indatakontext med hjälp av funktionen ImmCreateContext. Om du vill tilldela kontexten till ett fönster anropar programmet funktionen ImmAssociateContext. Den här funktionen returnerar ett handtag till den tidigare associerade indatakontexten. Om programmet inte redan har associerat en indatakontext med fönstret är det returnerade handtaget för standardindatakontexten. Normalt sparar programmet handtaget och associerar det senare med fönstret när den anpassade indatakontexten inte längre behövs.
När en indatakontext är associerad med ett fönster väljer operativsystemet automatiskt den kontexten när fönstret aktiveras och tar emot indatafokus. Formatmallen och annan information i indatakontexten påverkar efterföljande tangentbordsindata för det fönstret, vilket avgör hur IME fungerar.
Ditt program måste förstöra alla anpassade indatakontexter innan det avslutas. Först tar programmet bort indatakontexten från alla associationer som det har gjort med windows i tråden med hjälp av funktionen ImmAssociateContext. Sedan anropas funktionen ImmDestroyContext.
Relaterade ämnen