Я пытаюсь, чтобы наше приложение правильно обрабатывало международный ввод. Поскольку мы сами обрабатываем ввод текста и рендеринг шрифтов, я написал собственный код для обработки соответствующих сообщений WM_IME_ *.
Теперь все работает нормально, за одним исключением: когда главное окно наших приложений открыто, языковая панель не позволяет мне выбирать какие-либо параметры. Я могу установить язык ввода на японский или корейский, но меню для выбора методов ввода (например, хангул или хирагана) не отображаются. Затем, когда я открываю другое окно (любое другое окно, будь то одно из окон нашего приложения или стандартный диалог «Сохранить файл»), появляются параметры. Оказавшись там, они останутся, даже если я закрою другое окно. В этом случае ввод IME будет работать, как и ожидалось, в главном окне. Но, как объяснялось, только если я сначала открою другое окно.
Теперь, как окна решают, должны ли они отображать параметры метода ввода или нет? Похоже, что windows по какой-то причине не распознает наше главное окно как Unicode. Как я могу это исправить?
Заранее спасибо за любые предложения,
Джонас
Редактировать: Еще одна странная вещь, которую я заметил, заключается в том, что для моего главного окна (которое не позволяет мне изменять методы ввода) я получу сообщение WM_INPUTLANGUAGECHANGEREQUEST, когда я изменю язык ввода - который я передаю DefaultWindowProcW. Для окон, которые позволяют мне изменить метод ввода, я не получаю запрос, я просто получаю сообщение WM_INPUTLANGUAGECHANGE (которое я не получаю для другого окна).