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 |
WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号
GMT+8, 2024-11-22 12:58 , Processed in 0.213716 second(s), 13 queries , Gzip On, File On.
Powered by Discuz! X3.4
Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.