HOOK截获中文输入会出现响应多次的情况。

当在Word中输入“你好” 记录下来的结果变成了"你好你好你好你好" 实在不解。。 代码如下
        case WM_IME_COMPOSITION:

			//MessageBox(NULL, "ImmGetContext3", "ImmGetContext3", MB_OK);

			//if   (m_hEditWnd   ==   pmsg->hwnd)

			{

                HIMC hIMC;

                HWND hWnd=pmsg->hwnd;

                DWORD dwSize;

                //char ch;

                

                if(pmsg->lParam & GCS_RESULTSTR)

                {

                    //先获取当前正在输入的窗口的输入法句柄

                    hIMC = ImmGetContext(hWnd);

                    if (!hIMC)

                    {

                        MessageBox(NULL, "ImmGetContext", "ImmGetContext", MB_OK);

                    }



                    // 先将ImmGetCompositionString的获取长度设为0来获取字符串大小.

                    dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);



                    // 缓冲区大小要加上
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值