Можно ли получить доступ к выбору окна IME с помощью кода с помощью VB.Net?

avatar
ByteCarp
9 августа 2021 в 03:10
82
0
0

У меня проблема с курицей или яйцом -

Я пытаюсь создать пользовательское контекстное меню для элемента управления RichTextBox, которое ВКЛЮЧАЕТ пункт меню «Реконверсия», предоставляемый контекстным меню текстового поля по умолчанию, когда IME включен.

Так вот в чем проблема -

Дублировать варианты текстового меню по умолчанию (Вырезать,Копировать...) несложно, но как ДОБАВИТЬ меню, которое будет открывать окно реконверсии IME?

Я думал, что можно подключить дескриптор Windows для этого меню, но у меня нет ни малейшего понятия.

(Обратите внимание, что элемент управления RichTextBox НЕ имеет контекстного меню по умолчанию)

Моя проблема в том, что мне нужна возможность форматирования RTF, поэтому я не могу просто использовать текстовое поле с системным меню по умолчанию (которое отлично работает с IME).

Источник
41686d6564 stands w. Palestine
9 августа 2021 в 03:22
0

Может быть, это поможет? Помещение IME в пользовательское текстовое поле, производное от Control

Jimi
9 августа 2021 в 03:52
0

Maybe you just need ImmSetOpenStatus(), ImmSetStatusWindowPos(), ImmGetDefaultIMEWnd() -- Input Method Manager

ByteCarp
17 августа 2021 в 03:46
0

ОК, почти готово с небольшим хаком, но, по крайней мере, я могу получить доступ к контекстному меню — я объявил пользовательский API mouseevent и перехватил mouseup. Окно меню открывается, но я не могу перемещаться по нему. Я пробовал SendKeys, не повезло. Может быть, взять оконную ручку?

Ответы (0)