我想得到输入的汉字(串)!
好像截获WM_IME_CHAR消息只能得到一个汉字。
请大虾帮忙:如何得到整个字串。

解决方案 »

  1.   

    首先声明:我对输入法不熟悉,下面代码是从MSDN上面拷贝过来的。 if(cs->message == WM_IME_COMPOSITION)//截获中文输入
     {
       // 以下代码从MSDN(WinBase/International Features/Input Method Editor)中粘
       // 过来,不过删掉了很多。
       if(cs->lParam & GCS_RESULTSTR)
       {
         HIMC hImc;
         DWORD dwSize;
         char *Buf;     hImc = ImmGetContext(GetActiveWindow());
         dwSize = ImmGetCompositionString(hImc, GCS_RESULTSTR, NULL, 0);
         Buf = new char[dwSize + 1];     ImmGetCompositionString(hImc, GCS_RESULTSTR, (LPVOID)Buf, dwSize);     Buf[dwSize] = '\0';
         ImmReleaseContext(GetActiveWindow(), hImc);     Form1->Memo1->Lines->Add(">: " + AnsiString(Buf));
         delete Buf;
       }
     }