在WPF中,ImmGetContext返回0
本文关键字:返回 ImmGetContext WPF | 更新日期: 2023-09-27 18:07:41
在WPF窗口,
WindowInteropHelper h = new WindowInteropHelper(this);
IntPtr hK = ImmGetContext(h.Handle);
ImmGetContext总是返回0。相反,在Windows窗体中,它可以正常工作。
我相信我们也遇到过这个问题。
对于我们的应用程序,我们最终重写了WindowProc,并使用WM_IME_COMPOSITION消息中的hwnd,并将其传递给ImmGetContext()。
我们在OnSourceInitialized中设置了WindowProc。(我们的代码是c++/cli,所以这个c#可能不准确)
var handle = new WindowInteropHelper( this ).Handle;
HwndSource.FromHwnd(handle).AddHook( new HwndSourceHook( WindowProc ) );