游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2384|回复: 5

如何时键盘消息越过输入法窗口?

[复制链接]

23

主题

63

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2007-2-12 16:24:00 | 显示全部楼层 |阅读模式
在我们玩游戏的时候经常会遇到快捷键不可用的情况,原因是键盘消息被输入法窗口获得了(如智能ABC的窗口).我现在想达到的效果是只有当输入框(发送聊天消息的)获得焦点时让输入法窗口得到消息.

我找到了两个函数: ActivateKeyboardLayout 和 GetKeyboardLayoutName. 当聊天输入窗失去焦点时,通过它们把输入法设置成没有窗口的英文输入法,可以使快捷键盘重新可用,当聊天输入窗获得焦点时再设置回去.

但是这样只能部分解决问题, 我不能阻止玩家在当聊天输入窗失去焦点的状态下用SHIFT+CTRL改变输入法(总是智商不高的玩家),这样快捷键又不可用了.

大家有什么好办法吗?

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20737
发表于 2007-2-12 21:46:00 | 显示全部楼层

Re:如何时键盘消息越过输入法窗口?

貌似不行,看看用DInput直接获取键盘硬件的属性信息行不行。

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2007-2-13 10:40:00 | 显示全部楼层

Re:如何时键盘消息越过输入法窗口?

GetAsyncKeyState() 貌似可以。

8

主题

41

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2007-2-13 15:28:00 | 显示全部楼层

Re:如何时键盘消息越过输入法窗口?

其实没有必要那样做,既然别人知道用SHIFT+CTRL改变输入法,就应该知道怎么变回来,想CS这样的游戏,如果你打开输入法,还不是会屏蔽热键?有些东西还是自然点好,个人觉得

9

主题

688

帖子

688

积分

高级会员

Rank: 4

积分
688
发表于 2007-2-13 16:00:00 | 显示全部楼层

Re:如何时键盘消息越过输入法窗口?

打到最激烈的时候不小心打开了输入法,用不了快捷键,咋办?

37

主题

180

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2007-2-15 00:16:00 | 显示全部楼层

Re: 如何时键盘消息越过输入法窗口?

1.disable 标准输入法.自己显示
2.gui系统焦点移动,切换输入法设置
3.走2个讯息loop .dxinput 控制游戏 win msg 只收ime
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 11:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表