如何在datawindows中切换中英文输入法数?可不可以详细点啊,我是个新手

如何在datawindows中切换中英文输入法数?可不可以详细点啊,我是个新手
[39 byte] By [njscorpio-潜水王] at [2008-5-26]
# 1
用Windows的API函数可以办到。

①定义API:
function boolean ImmSimulateHotKey (ULong hWnd, ULong dwHotKeyID) library "IMM32.dll"
function ulong GetKeyboardLayout(ulong dwLayout) LIBRARY "user32.dll"
function boolean ImmIsIME(uLong hklKeyboardLayout) library "IMM32.DLL"

②脚本:
ulong hklCurrent
ulong hnd

//切换到英文输入法
hklCurrent=GetKeyboardLayout(0)
if ImmIsIME(hklCurrent) then
hnd=Handle(parent)
ImmSimulateHotKey(hnd,112)
end if

//切换到中文输入法
hklCurrent=GetKeyboardLayout(0)
if not ImmIsIME(hklCurrent) then
hnd=Handle(parent)
ImmSimulateHotKey(hnd,112)
end if

另外:GetKeyboardLayout()函数

说明: 取得一个句柄,描述指定应用程序的键盘布局。
返回值: ulong,键盘布局的句柄。
参数 类型及说明
dwLayout ulong,欲检查的线程的标识符。
(转之于 小木鱼)
keani-基恩 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 2
我应该如何调用api啊。脚本在哪里写啊
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 3
你先在Local extenal function定义API Function,脚本在datawindow中的在itemchangedfocus 事件中写
coffeman at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 4
值得关注!
xwmhn-小猫 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 5
coffeman:我没有找倒itemchangedfocus,倒是找倒了个itemfocuschanged
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 6
就是这个了
pbworm-pb菜鸟 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 7
55555
我把上面的代码加进去了,怎么没有反应啊。
我用的pb6.5、 sql7.0 、windows xp
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 8
呵呵!解决了。原来是xp不支持
还有一小问,问完给分。
如果我想动态的切换输入法应该怎么作啊?例如:
在第一列我要输入英文,切换成英文输入法
在第二列我要输入中文,要切换成中文输入法
在第三列我又要输入英文,再切换成英文输入法
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 9
呵呵!看来20分是不够了。加分!
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 10
定义快捷键吧,用快捷键响应切换事件就可以了。

所谓定义快捷键就是在key事件里,判断按下了什么键,比如:
if (keyEnter!) then //按下了enter键
this.triggerevent(切换事件)
end if
keani-基恩 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 11
难道就没有别的方法切换输入法了吗
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 12
up
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...
# 13
upupup
njscorpio-潜水王 at 2007-10-25 > top of Msdn China Tech,PowerBuilder,DataWindow...