Я хочу напечатать корейский текст в моей области ediatble внутри приложения winform.
Но символы повторяются, я пытался переопределить значение по умолчанию WndProc
, но ничего не работает.
switch (m.WParam.ToInt32())
{
case Common.Interop.Window.WM_IME_CHAR:
break;
case Common.Interop.Window.WM_IME_ENDCOMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_CHAR:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_NOTIFY:
break;
case Common.Interop.Window.WM_IME_COMPOSITION:
PassCharToScreen(m);
break;
case Common.Interop.Window.WM_IME_COMPOSITIONFULL:
break;
Когда я набираю текст на английском языке, точка останова WM_CHAR
, но когда я печатаю на корейском языке, он нажимает WM_IME_COMPOSITION
на первый символ, а затем после первого символа сначала обращается к WM_IME_COMPOSITION
, а затем попадает WM_CHAR
.
Я заметил, что он набирает первый символ правильно. например ㅁ (корейский характер) При вводе второго символа. ㅁㅂㅁ (Первый char, второй char, первый char). Я хочу, чтобы поведение, как в блокноте