Oluşturma Dizesi
Oluşturma dizesi, oluşturma penceresindeki geçerli metindir. Bu, IME'nin son karakterlere dönüştürdüğü metindir. Her bileşim dizesi, bir veya birden fazla "cümlecik"ten oluşur. Yan tümcesi, IME'nin son karaktere dönüştürebileceği en küçük karakter birleşimidir. Oluşturma dizesini almak ve ayarlamak için uygulama sırasıyla ImmGetCompositionStringve ImmSetCompositionString işlevlerini çağırır.
Kullanıcı, oluşturma penceresine metin girerken IME, oluşturma dizesinin durumunu izler. Bu durum öznitelik bilgilerini, yan tümce bilgilerini, yazma bilgilerini ve imleç konumunu içerir. Uygulama, ImmGetCompositionString işlevini kullanarak oluşturma durumunu alabilir.
Öznitelik bilgileri, oluşturma dizesindeki karakterlerin durumunu belirten 8 bitlik değerler dizisinde işlenir. Bir yan tümcenin tüm karakterleri aynı özniteliğe sahip olmalıdır. Dizi, dizedeki her bayt için bir değer içerir; bu, çift baytlı karakterlerin öncü ve ikinci baytları dahil olmak üzere, dizideki her bayt için bir baytı da içerir. Dizideki her değer için 0 ile 3 arasında bitler aşağıdaki değerlerin bir bileşimi olabilir.
Değer | Anlam |
---|---|
ATTR_INPUT | Kullanıcı tarafından girilen karakter. IME henüz bu karakteri dönüştürmedi. |
GİRİŞ HATASI | IME'nin dönüştüremediği bir hata karakteri. Örneğin, IME bazı consonantları bir araya getiremez. |
HEDEF_DÖNÜŞTÜRÜLDÜ | Kullanıcı tarafından seçilen ve ardından IME tarafından dönüştürülen karakter. |
ATTR_CONVERTED | IME'nin zaten dönüştürdüğü karakter. |
ATTR_TARGET_NOTCONVERTED | Dönüştürülmekte olan karakter. Kullanıcı bu karakteri seçti, ancak IME henüz dönüştürmedi. |
ATTR_FIXEDCONVERTED | IME'nin artık dönüştürmeyeceği karakterler. |
Diğer tüm değerler ayrılmıştır. Japoncada, ATTR_INPUT özniteliğine sahip çevrilmemiş karakterler hiragana, katakana veya alfasayısal karakterdir. Korece'de bu öznitelik, IME'nin henüz dönüştürmediği bir Hangul karakterini temsil eder. Geleneksel Çince ve Basitleştirilmiş Çince'de, her IME bir aralıktaki karakterini sınırlayabilir.
Birleştirme dizesi durumuna dahil edilen yan tümce bilgileri, yan tümcelerin bileşim dizesindeki konumlarını belirten 32 bitlik değerler dizisidir. Dizi, her yan tümce için bir değer ve tam dizenin uzunluğunu belirten bir son değer içerir. Dizideki her değer, bayt cinsinden, dizenin başlangıcından cümleciğe kadar olan uzaklığı belirtir. İlk yan tümce her zaman dizenin başında başladığından ilk değer her zaman 0'dır. Örneğin, bir dizenin iki yan tümcesi varsa yan tümce bilgilerinin üç değeri vardır: ilk değer 0, ikinci değer ikinci yan tümcenin uzaklığı ve üçüncü değer dizenin uzunluğudur. Unicode için, yan tümcenin konumu Unicode karakterleri olarak sayılır ve dizenin uzunluğu Unicode karakterleri cinsindendir.
Oluşturma dizesi durumuna eklenen yazma bilgileri, kullanıcının klavyede girdiği karakterleri temsil eden null olarak sonlandırılan bir karakter dizesidir.
Oluşturma dizesi durumuna dahil edilen imleç konumu, imlecin kompozisyon dizesindeki karakterlere göre konumunu gösteren bir değerdir. Değer, dizenin başından bayt cinsinden uzaklıktır. Bu değer 0 ise, imleç dizedeki ilk karakterden hemen öncedir. Değer dizenin uzunluğuna eşitse, imleç son karakterden hemen sonradır. Değer 1 ise, imleç mevcut değildir. Unicode için hem konum hem de uzunluk Unicode karakterleriyle ölçülür.
Uygulamanız, ImmSetCompositionString işlevini kullanarak oluşturma dizgisini veya oluşturma durumu öğelerini ayarlayabilir. Oluşturma penceresinin görünümünü bu değişikliklere göre güncelleştirdiğinden emin olmak için işlev, uygulamanın pencereye bir bildirim iletisi göndermesine izin verir. Oluşturma durumu öğelerinin birleşimini ayarlayan uygulamalar genellikle bu işleve yapılan son çağrı dışında tüm bildirimler için bildirimleri devre dışı bırakır, böylece oluşturma penceresi için yalnızca bir bildirim iletisi oluşturulur.
Son olarak, düzenleme denetimi IME tarafından oluşturma dizelerinin işlenmesini değiştirmek için iki iletiyi destekler. Daha fazla bilgi için bkz. EM_GETIMESTATUS ve EM_SETIMESTATUS. Düzenleme denetimi hakkında daha fazla bilgi için bkz. Düzenleme Denetimi.
İlgili konular