用Delphi实现输入法转换

  在平时的计算机操作中,中文输入是不可避免的。使用者可能喜欢不同的中文输入法(inputmethodeditor,简称IME),这就不得 不经常点击任务栏中的中文图标或用CTRL+Space,CTRL+Shift热键切换,初学者用起来很不方便。针对这一问题,可以在开发软件时,在程序 中设置用户喜欢的中文输入法,方便用户的使用。Delphi中只有少数控件如TEdit支持IME,而且该功能不强,不能在运行时更改输入法。  
    
  笔者通过实践和摸索,查找了相关的IME资料,利用了WINDOWS API   函数,实现了IME的功能。  

常用函数有:  
    
  API函数:BOOL ImmSimulateHotKey(HWNDhWnd,DWORDdwHotKeyID);//   模拟热键,其中Hwnd为程序窗口的句柄,dwHotHKeyID为模拟的热键,若成功则返回True  
  HKL GetKeyboardLayout(DWORDdwLayout);//获得当前键盘状态  
       BOOL ImmIsIME(HKLhKL);//判断当前是否处于中文输入状态,若是则返回True

自定义函数:  
  打开相应输入法:
   OpenIme(imename:string), 例OpenIme('全拼输入法');关闭中文输入法:
   CloseIme;  
  以下是一个简单的例子,仅起参考作用。使用时uses中加上imm,具体的实现方法及源代码如下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值