在wxWidgets中,我捕获了wxKeyDown
事件,该事件为我提供了wxKeyEvent
。我需要得到被按下的键的名称(例如" F1"," Del"," Home"," A")要显示给用户,但我找到的最近的是wxKeyEvent::GetUnicodeKey()
:
void OnKeyDown(wxKeyEvent &event)
{
wxMessageBox(wxString::Format("Key pressed: %c", event.GetUnicodeKey()));
}
我发现的唯一其他解决方案是使用带有没有Unicode表示的键的switch语句(例如Del)。有没有其他方法可以检索按下的键的名称?
答案 0 :(得分:2)
没有内置函数来获取密钥的名称,但是您可以看到如何对keyboard sample中的大多数(甚至可能是所有)特殊密钥执行此操作。
编辑:实际上有一个我没想到的功能:wxAcceleratorEntry::ToString()。这是相当迂回的,但你可能可以使用wxAcceleratorEntry(0 /* no modifiers */, keycode).ToString()
返回一个合理的用户友好的密钥描述。