Windows IME: пользовательская корейская виртуальная клавиатура - PullRequest
4 голосов
/ 06 октября 2011

У меня проблема с корейским Windows IME.Я разрабатываю виртуальную (экранную / программную) клавиатуру для части встроенного программного обеспечения.Я полагаюсь на Windows IME, и он хорошо работает для японского и китайского языков.Он также отлично работает с корейским, если я использую физическую клавиатуру.

Но когда я нажимаю кнопку виртуальной клавиатуры, события мыши, кажется, мешают IME и в основном просто отменяют композицию.Сообщение WM_IME_ENDCOMPOSITION срабатывает при каждом нажатии кнопки мыши.В результате я могу получить только отдельные корейские символы без возможности объединять их в слова.

Кто-нибудь знает какой-либо способ управления этим эффектом?Как программная клавиатура Windows по умолчанию обходит ее?По ряду причин мы не можем использовать программную клавиатуру Windows по умолчанию в нашем продукте, и нам необходимо разработать собственную.

Спасибо.

1 Ответ

2 голосов
/ 07 декабря 2012

Окончание композиции вызывается сообщением клавиатуры VK_ProcessKey. Это сообщение появляется после того, как вы щелкнули виртуальный ключ шпионом ++.

Рекомендуется перехватить функцию, используемую для фильтрации этого сообщения через Windows API SetWindowsHookEx.

В моем случае этот способ может работать так, как мы ожидали.

...