获取wxWidgets中的密钥名称

时间:2015-10-11 19:03:00

标签: c++ 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)。有没有其他方法可以检索按下的键的名称?

1 个答案:

答案 0 :(得分:2)

没有内置函数来获取密钥的名称,但是您可以看到如何对keyboard sample中的大多数(甚至可能是所有)特殊密钥执行此操作。

编辑:实际上有一个我没想到的功能:wxAcceleratorEntry::ToString()。这是相当迂回的,但你可能可以使用wxAcceleratorEntry(0 /* no modifiers */, keycode).ToString()返回一个合理的用户友好的密钥描述。