Aracılığıyla paylaş


Giriş Bağlamı

"Giriş bağlamı", IMM tarafından tutulan bir iç yapıdır. IME'nin durumu hakkında bilgi içerir ve IME pencereleri tarafından kullanılır. Varsayılan olarak, işletim sistemi her iş parçacığına bir giriş bağlamı oluşturur ve atar. İş parçacığında, bu varsayılan giriş bağlamı paylaşılan bir kaynaktır ve yeni oluşturulan her pencereyle ilişkilendirilir.

IME'deki bilgileri almak veya ayarlamak için, IME kullanan bir uygulamanın önce belirtilen bir pencereyle ilişkili giriş bağlamına bir tanıtıcı alması gerekir. Uygulama, ImmGetContext işlevini kullanarak tanıtıcıyı alır. IMM işlevlerine yapılan sonraki çağrılarda alınan tanıtıcıyı kullanarak oluşturma penceresi stili, oluşturma stili ve durum penceresi konumu gibi IME değerlerini alabilir ve ayarlayabilir. Uygulama bağlamı kullanmayı bitirdikten sonra, ImmReleaseContext işlevini kullanarak bağlamı serbest bırakması gerekir.

Varsayılan giriş bağlamı paylaşılan bir kaynak olduğundan, uygulamanın bu kaynakta yaptığı tüm değişiklikler iş parçacığındaki tüm pencerelere uygulanır. Ancak uygulama, kendi giriş bağlamını oluşturup iş parçacığının bir veya daha fazla penceresiyle ilişkilendirerek bu varsayılan davranışı geçersiz kılabilir. Uygulamaya özgü giriş bağlamında yapılan değişiklikler yalnızca bağlamla ilişkilendirilmiş pencereler için geçerlidir.

Uygulamanız ImmCreateContext işlevini kullanarak bir giriş bağlamı oluşturabilir. Bağlamı bir pencereye atamak için uygulama ImmAssociateContext işlevini çağırır. Bu işlev, daha önce ilişkili giriş bağlamı için bir tanıtıcı döndürür. Uygulama henüz pencereyle bir giriş bağlamı ilişkilendirmediyse, döndürülen tanıtıcı varsayılan giriş bağlamı içindir. Genellikle, uygulama bu tanıtıcıyı kaydeder ve daha sonra özelleştirilmiş giriş bağlamı artık gerekli olmadığında pencereyle yeniden ilişkilendirir.

Bir giriş bağlamı bir pencereyle ilişkilendirildikten sonra, pencere etkinleştirildiğinde ve giriş odağını aldığında işletim sistemi bu bağlamı otomatik olarak seçer. Giriş bağlamındaki stil ve diğer bilgiler, bu pencere için sonraki klavye girişini etkileyerek IME'nin nasıl çalıştığını belirler.

Uygulamanızın sonlandırılabilmesi için özelleştirilmiş giriş bağlamını yok etmesi gerekir. İlk olarak uygulama, ImmAssociateContext işlevini kullanarak iş parçacığındaki pencerelerle yaptığı tüm ilişkilendirmelerden giriş bağlamını kaldırır. Ardından ImmDestroyContext işlevini çağırır.

Giriş Yöntemi Yöneticisi Hakkında