日期:2014-05-16  浏览次数:21507 次

c# 获取输入法结果
if (m.Msg == WM_IME_CHAR)
            {
                Debug.WriteLine("W:"+m.WParam.ToInt32());
                    StringBuilder str = new StringBuilder();
                    int size = ImmGetCompositionString(imeHandle, GCS_RESULTSTR, null, 0);
                    Debug.WriteLine("size:" + size);
                    size += sizeof(Char);
                    ImmGetCompositionString(imeHandle, GCS_RESULTSTR, str, size);
                    Debug.WriteLine(str.ToString().Substring(0, str.Length));
            }


测试结果:  输入单个汉字,结果正常,输入多个汉字,结果会出现多次重复,
例如: 输入 我 ,结果是:我        
       输入 我们,结果是:我们     我们
       输入 中国人,结果是:中国人 中国人 中国人

不知此问题何解?
------解决方案--------------------
试试WM_IME_COMPOSITION