在wxWidgets中获取键名
Getting key name in wxWidgets
在wxWidgets中,我捕获wxKeyDown
事件,它给了我一个wxKeyEvent
。我需要得到按下的键的名称(例如:"F1","Del","Home","A")显示给用户,但我发现最接近的是wxKeyEvent::GetUnicodeKey()
:
void OnKeyDown(wxKeyEvent &event)
{
wxMessageBox(wxString::Format("Key pressed: %c", event.GetUnicodeKey()));
}
我发现的唯一其他解决方案是使用带有不具有Unicode表示的键的switch语句(例如Del)。还有其他方法可以检索按下的键的名称吗?
没有内置函数来获取键名,但是您可以看到如何在键盘示例中为大多数(甚至可能是所有)特殊键执行此操作。
编辑:实际上有一个函数我没有想到:wxAcceleratorEntry::ToString()。这是相当迂回的,但是您可能可以使用wxAcceleratorEntry(0 /* no modifiers */, keycode).ToString()
来返回一个合理的用户友好的键描述。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 如何获取一个数字的前3位
- 获取字符串的长度并将其分配给数组
- 无法从教程中获取wxWidgets示例以工作
- 如何获取wxWidgets面板(列表框)的引用
- 如何在 Debian 上安装所有 .debs 后获取 WxWidgets setup.h
- 如何在 wxWidgets 中获取功能区中切换按钮的状态
- 在wxWidgets中获取键名
- 如何使用wxWidgets获取打印机的状态和发送到打印机的作业
- 如何在wxWidgets中按id获取小部件