- 积分
- 34677
- 威望
- 499
- 魅力
- 507
- 经验
- 20326
- 热心度
- 9
- 注册时间
- 2006-3-13
- 最后登录
- 2024-9-30
- 主题
- 134
- 回帖
- 4949
- 精华
- 35
- 阅读权限
- 150
TA的每日心情 | 郁闷 2015-6-6 16:12 |
---|
签到天数: 52 天 连续签到: 1 天 [LV.5]女巫
超级版主
- 积分
- 34677
|
ERA3版本后,使用HD的openGL模式 + wog native dialogs.era 后,一般输入框(通常用ERM脚本引导)是无法使用小键盘键入数字的。此时的小键盘的输入效果类似于 Numlock 没开启的情况(感觉是H3程序员偷懒的结果,难道当年还没有小键盘概念)。
之前做dat配置文件存取插件时,也考虑过小键盘的数字键入支持,奈何光有思路,没有突破障碍。思路挺简单的,hook入输入框对话框的按键事件,换掉它的小键盘按键结果。但实际难点在于,H3系统的按键事件关于按键的参数并不能判断出小键盘的操作,虽然可以强制替换,但同时会让原有非小键盘的del键和方向键失效(被替换),一时无法解决,暂时放弃。
今天Archer30兄弟又提了一下,希望可以带入小键盘支持。于是又去研究了半天,最后发现H3系统的按键事件触发时,API的KeyboardState有记录最原始的按键信息(但神奇的是按键信息在对话框生存周期一直生效,不会自动复原,比如按了一次A键后,A键信息将长期存在)。也就是说,可以通过这个API的按键信息来判断出是否属于小键盘的操作,但同时要在按键后手工删除API的对应按键信息,否则不能准确判定每次按键的实际操作。
障碍清除了,尝试做了一个插件,让输入框满足支持小键盘的数字输入。
目前支持小键盘的数字 0-9及小数点的输入,需要在 NumLOCK 开启时才生效。
测试发现,除了满足一般输入框,tab的输入也可以使用。但不支持存档界面的输入(这里有个特殊情况,所以关闭了)。
插件:Hawaiing_DlgEdit_Keypad_Support.era
作者:贤知有您 Hawaiing
使用平台:ERA3+
使用方法:放到任意加载mod的EraPlugins插件目录下
下载:
Hawaiing_DlgEdit_Keypad_Support.era
(10 KB, 下载次数: 65)
|
评分
-
3
查看全部评分
-
|