我在做一个软键盘的程序,现在可以通过点击按钮来模拟键盘了,但是却无法将结果输出到其他窗口,有没有办法在窗体打开和点击按钮的时候让窗体一直都不获得焦点?也就是说,让焦点一直停留在之前需要输入的地方

解决方案 »

  1.   

    你设一个变量保存第一个窗体的按键结果,然后转道需要的到结果的那个窗体,再把这个结果赋予到这个窗体的组件(比如edit)上。
      

  2.   

    是可以的, 你要参考 那堆 msdn 的关于 输入法的api, 我现在没有msdn, 没法帖出来
      

  3.   

    private 
        { Private declarations } 
       procedure WMMouseActivate(var Msg: TWMMouseActivate); message WM_MOUSEACTIVATE; 
       procedure WmNCHitTest(var Msg :TWMNCHitTest); message WM_NCHITTEST;
      End;
    ...
    procedure TForm1.WMMouseActivate(var Msg: TWMMouseActivate); 
     begin 
      Msg.Result := MA_NOACTIVATE; 
    end; procedure TForm1.WmNCHitTest(var Msg: TWMNCHitTest); 
    begin 
      DefaultHandler(Msg); 
      if Msg.Result = HTCAPTION then 
        Msg.Result := HTNOWHERE; 
    end; 
      

  4.   

    to  fei19790920(饭桶超人II(抵制日货)):你的代码好象只是点击窗体的时候不得到焦点,怎么样让点按钮的时候也不得到焦点呢?
      

  5.   

    我把按钮换成了label就可以了,但是点击之后,程序虽然没有焦点了,之前焦点所在的窗口也失去焦点了,有没有办法让焦点停留在之前的窗口?