Colocando o IME em uma caixa de texto personalizada, derivada de Control

Eu criei meu próprio controle de caixa de texto de linha única no C # .net 3.5

Eu escrevi isso completamente do zero, incluindo meu próprio código de seleção, rolagem, copiar / colar, etc. Ele pode até selecionar o texto da esquerda para a direita, não que eu já usei isso ...

O problema que estou tendo é com a integração do IME (editor de método de entrada). O IME funciona até certo ponto, mas tenho alguns problemas. Vou apenas listar um deles aqui.

Normalmente, usando um TextBox, a construção do IME é renderizada dentro do TextBox. No entanto, no meu controle, o IME é exibido na parte inferior direita da tela. Tentei olhar para outros controles personalizados, incluindo o usado no SharpDevelop. No entanto, isso teve o mesmo problema. Digitar em chinês, japonês ou coreano fazia com que o IME fosse feito na parte inferior direita da tela.

Preciso de algumas dicas sobre como fazer isso em minha própria caixa de texto e observei a API do Windows para IME, mas há muitas funções e não tenho idéia por onde começar.

Então, alguma ideia?

Tudo bem se houver algum exemplo de código em C ++ (gerenciado / não gerenciado) ou VB.net. Eu posso movê-lo facilmente.

questionAnswers(1)

yourAnswerToTheQuestion