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

njscorpio 2002-02-21 12:23:28
如何在datawindows中切换中英文输入法数?可不可以详细点啊,我是个新手
...全文
92 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
55555
我把上面的代码加进去了,怎么没有反应啊。
我用的pb6.5、 sql7.0 、windows xp
pbworm 2002-02-21
  • 打赏
  • 举报
回复
就是这个了
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
coffeman:我没有找倒itemchangedfocus,倒是找倒了个itemfocuschanged
xwmhn 2002-02-21
  • 打赏
  • 举报
回复
值得关注!
coffeman 2002-02-21
  • 打赏
  • 举报
回复
你先在Local extenal function定义API Function,脚本在datawindow中的在itemchangedfocus 事件中写
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
up
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
我应该如何调用api啊。脚本在哪里写啊
keani 2002-02-21
  • 打赏
  • 举报
回复
用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,欲检查的线程的标识符。
(转之于 小木鱼)
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
upupup
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
up
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
难道就没有别的方法切换输入法了吗
keani 2002-02-21
  • 打赏
  • 举报
回复
定义快捷键吧,用快捷键响应切换事件就可以了。

所谓定义快捷键就是在key事件里,判断按下了什么键,比如:
if (keyEnter!) then //按下了enter键
this.triggerevent(切换事件)
end if
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
呵呵!看来20分是不够了。加分!!
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
呵呵!解决了。原来是xp不支持
还有一小问,问完给分。
如果我想动态的切换输入法应该怎么作啊?例如:
在第一列我要输入英文,切换成英文输入法
在第二列我要输入中文,要切换成中文输入法
在第三列我又要输入英文,再切换成英文输入法

611

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧