软键盘在程序中的实现(100分)

  • 主题发起人 主题发起人 周峰
  • 开始时间 开始时间

周峰

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在程序中作一软键盘(象中文输入法中弹出的键盘一样),可
在任意的窗口中输入字符。
注:此键盘程序在程序中调用一次后,可在系统中新弹出的任意窗
口中输入字符。
 
在软键盘form中定义一个指示目标form的变量,每次调用该软键盘时对这个变量赋值,应该可以吧.

至于这个软键盘的实现,可以用多个button实现,这就不用多说了吧
 
应该作一个Hook劫持到所有Focus的Edit类的窗口,然后直接根据你的软键盘接受到的输入发送键盘消息
 
要做软键盘,须注意:
1:必须保证你的软键盘不能夺走输入窗口的焦点;
2:获得输入窗口的Handle,向它发键盘消息;
解决方法:
1:当你每一次单击自己的软键盘时(即夺走输入窗口的焦点)
你必须把焦点还给先前的输入窗口,你可以拦截WM_ACTIVATE
消息实现。
2:发送键盘消息可以用keybd_event()实现模拟按键,但中文
就比较麻烦,不过也能实现。
 
多人接受答案了。
 
后退
顶部