如何使wxAcceleratorTable与wxFrame和wxTextCtrl一起使用?

时间:2015-04-23 22:52:13

标签: wxwidgets wxtextctrl

我在wxFrame上有一个wxTextControl和一个wxButton,我想要Shift + Enter来点击按钮。 wxAcceleratorTable documentation表示这是可能的:

"例如,您可以使用加速器表启用带有多行文本控件的对话框,以接受CTRL-Enter作为含义' OK'。"

我无法让它发挥作用。你能举个简单的例子说明如何一起使用wxFrame,wxTextControl,wxButton和wxAcceleratorTable吗?

1 个答案:

答案 0 :(得分:0)

事实证明,wxAcceleratorTable只能与wxGTK上的wxEVT_MENU一起使用。所以代码看起来像这样:

wxAcceleratorEntry shiftReturn(wxACCEL_SHIFT, WXK_RETURN, wxID_BACKWARD);
SetAcceleratorTable(wxAcceleratorTable(1, &shiftReturn));
Bind(wxEVT_MENU, &FindFrame::OnPrev, this, wxID_BACKWARD);

相反,我们决定使用原生加速器用于GTK和OSX而不是wx加速器,这样键盘快捷键就可以为目标按钮设置动画。在604cdb5上查看b00a76e91a8d2aPoedit's GitHub page