Как избирательно отключать IME ?
От: Romant73  
Дата: 09.10.08 00:08
Оценка:
Hi All,

Немного длинно, прошу прощения — но понятности ради ...

Имеется приложение а-ля Visio — лист, на нём живут shapes. В числе прочего, на этом листе могу жить text boxes — прямоугольники, в которые можно вводить текст. Всё это живёт на отнаследованном от мфсшного CView некотором view, назовём его CEditView. Когда юзер вводит текст в активный текст бокс, я в CEditView::WindowProc() ловлю все WM_IME_xx сообщения, форваржу текст боксу и там их обрабатываю.

Однако, выяснилось удивительное и неприятное: если юзер нажмёт Alt (что в процессе ввода, что просто после старта приложения, и при этом будет выбран сложный язык, для которого нужно composition window (Японский например)) и затем будет вводить буквы, то вместо ожидаемой навигации по меню (по альту первый корневой пункт меню File подсвечивается) он увидит composition window, в которое эти буквы и вводятся. Я это окно не создаю и им не управляю.

Вопрос — как мне избавиться от этого композишн окна так, чтобы IME совсем не отключался и ввод в текст боксы работал, но системное composition окошко не появлялось ?

Извёлся уже, это гадское окошко живее всех живых ...

Заранее благодарен за любой совет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.