为一个便携设备开发一个软件,由于设备没有键盘,需要在程序中的组件获得焦点的时候自动打开输入法,并打开软键盘供用户选择输入中文,自动打开输入法可以设置组件的imm属性,但自动打开软键盘该怎么实现呢?谢谢

解决方案 »

  1.   

    给你个参考代码:
    执行成功的前提是进入系统后手工切换成中文输入法,才能成功,不知道是为什么
    没搞定自动打开的,你研究研究uses IMM;procedure TForm1.Memo1Enter(Sender: TObject);
    var
      hIMC: DWORD;
      dwConv, dwSent: DWORD;
    begin
      hIMC := ImmGetContext(Form1.Handle);
      ImmGetConversionStatus(hIMC, dwConv, dwSent);
      dwConv := dwConv or IME_CMODE_SOFTKBD;
      ImmSetConversionStatus(hIMC, dwConv, dwSent);
      ImmReleaseContext(Form1.Handle,hIMC);
    end;
      

  2.   

    解决了,直接调用一个winAPI
    看来csdn上高手真的不多了