读取键盘字符以确定快捷方式

时间:2009-01-05 05:54:50

标签: c++ text keyboard-shortcuts keyboard-events

我正在处理文档应用程序和此应用程序的一部分我将添加支持以读取键盘按下的事件并替换预定义的字符集,如果该键盘条目与预定义的短格式/实际应用程序已在C ++中实现。

请告诉我你如何实现这个想法。有没有可供参考的示例C ++程序?算法/概念

3 个答案:

答案 0 :(得分:2)

了解如何使用wxWidgets api捕获keydown事件,也许在这里: http://docs.wxwidgets.org/stable/wx_eventhandlingoverview.html#eventhandlingoverview 注意key events。在C ++中实现一个开关,以查看按下了哪个组合键,并相应地将文本设置为编辑。我在这里想的是将CTRL-SHIFT-A按键转换为编辑框中的Ctrl-Shift-a等文本。

如果您考虑将字符组合转换为其他字符,例如汉字或平假名,则算法可能会更长,需要更多数据结构。

答案 1 :(得分:0)

标准C ++不支持按键事件,因此您必须查看操作系统功能或框架功能。可移植的C ++框架,如wxWidgets或Qt,支持Windows,Mac和Linux上的按键事件。

答案 2 :(得分:0)

如果你在Windows下,你可以使用GetAsyncKeystate API调用并注意更改,或使用低级键盘钩子(稍微复杂一些)(CreateHookEx +相关函数)。

在DOS下(或可能是Linux)你可以在控制台模式下使用conio.h中的_kbhit,我通常将它放在循环中(而(!_ kbhit());)用于“按任意键继续”,但是使用_getch可以检索按下的键