我正在开发一个文档应用程序和该应用程序的一部分,如果该键盘条目与预定义的短格式/单词匹配,我必须添加支持以读取键盘按下事件并替换预定义的字符集。实际应用程序已用 C++ 实现。
请向我提供您对如何实现这一点的想法。是否有任何示例 C++ 程序可供参考?算法/概念?
我正在开发一个文档应用程序和该应用程序的一部分,如果该键盘条目与预定义的短格式/单词匹配,我必须添加支持以读取键盘按下事件并替换预定义的字符集。实际应用程序已用 C++ 实现。
请向我提供您对如何实现这一点的想法。是否有任何示例 C++ 程序可供参考?算法/概念?
了解如何使用 wxWidgets api 捕获 keydown 事件,也许在这里: http ://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview 注意关键事件。在 C++ 中实现一个开关以查看按下了哪个组合键,并相应地将文本设置为编辑。我在这里考虑的是将 CTRL-SHIFT-A 按键转换为编辑框中的 Ctrl-Shift-a 之类的文本。
如果您正在考虑将字符组合转换为其他字符,例如汉字或平假名,则该算法可能会更长并且需要更多的数据结构。
标准 C++ 不支持按键事件,因此您必须查看操作系统函数或框架函数。wxWidgets 或 Qt 等便携式 C++ 框架支持 Windows、Mac 和 Linux 上的按键事件。
如果您在 Windows 下,您可以使用 GetAsyncKeystate API 调用并观察更改,或者使用低级键盘挂钩(稍微复杂一些)(CreateHookEx + 相关函数)。
在 DOS(或可能是 Linux)下,您可以在控制台模式下使用 conio.h 中的 _kbhit,我通常将其放入循环中(while(!_kbhit());) 用于“按任意键继续”,但使用 _getch 可以检索被按下的键