как Вы используете IME?

Подумайте, что произойдет, если позже вы захотите изменить каждое из них на свойство с пользовательской реализацией. Если это автоматически реализованное свойство, вы просто добавляете поле и меняете реализацию. Полная совместимость с исходным кодом и двоичным кодом.

Если это поле начинается, вы не получаете двоичную совместимость с исходным кодом и . Вы должны перестроить все, что ссылается на него, и исправить все, что больше не компилируется.

Кроме того, свойства имеют различные преимущества по сравнению с полями . Мое основное личное возражение против полей заключается в том, что оно предоставляет решение реализации в API.

14
задан Greg Hewgill 12 January 2009 в 00:39
поделиться

2 ответа

Я - Microsoft SDE, который некоторое время поддерживал корейский IME (Windows и Office) ...

К сожалению, лучшая документация по IME API предоставляется сторонними сайтами :


Вот официальная документация Microsoft: Диспетчер методов ввода (MSDN)

Там это также новый, более продвинутый IME на основе Text Services Framework (TSF), который Microsoft предпочла бы вам использовать, но он еще более сложен, и старый API эмулируется довольно хорошо. Если вам не нужны какие-либо дополнительные функции (например, ввод через планшет / распознавание голоса / модный IME и т. Д.), Тогда достаточно использовать старый API.

Лучшая документация по платформе текстовых служб - это Блог о TSF , написанный другим разработчиком Microsoft. Эрик Браун может даже лично ответить на ваши вопросы, если вы пойдете этим путем.

Вот официальная документация Microsoft для TSF: Text Services Framework (MSDN)

Одна из функций TSF, которую вы можете найти полезной, - это возможность подавить рендеринг IME (например, необходимо для полноэкранных игр, которым необходимо рендерить IME). Просто скажите TSF, что ваше приложение будет отображать графический интерфейс IME, а затем реализуйте пустой метод визуализации: Обзор режима UILess (MSDN)

25
ответ дан 1 December 2019 в 12:02
поделиться

Я не думаю, что Вы хотите подавить IME от того, чтобы быть отображенным. Я никогда не использовал один кроме для тестирования, но это - мое понимание, что IME, ожидал/принимал значение по умолчанию способ ввести неанглийские символы с помощью английской клавиатуры.

, Если Вы пишете управление и хотите полностью поддерживать IME, я думаю две опции, которые Вы имеете, должны ответить на различные сообщения Windows (как WM_IME_START_COMPOSITION, WM_IME_COMPOSITION, и т.д.) или Платформа Text Services (TSF) использования. Это - мое понимание, что TSF является будущим, и в Vista и Windows 7, весь код IME базируется прочь TSF с сообщениями Windows все еще там для совместимости со старыми программами.

0
ответ дан 1 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: