第一步:在Dialog类中声明wxEVT_KEY_DOWN事件的响应函数(事件函数一定没有返回值,参数也就有讲究的,详细说明在http://www.wxwidgets.org/manuals/2.8.4/wx_eventhandlingoverview.html)
class
MyDialog:
public
wxDialog
...
{
DECLARE_DYNAMIC_CLASS( MyDialog )
DECLARE_EVENT_TABLE()
public:
/**//// Constructors
MyDialog();
/**//// Destructor
~MyDialog();
void OnKeyDown(wxKeyEvent& event);
}
;
第二步:将 wxEVT_KEY_DOWN事件与响应函数 OnKeyDown关联起来
BEGIN_EVENT_TABLE( MyDialog, wxDialog )
EVT_KEY_DOWN(MyDialog::OnKeyDown)
END_EVENT_TABLE()
第三步:实现函数
void
MyDialog::OnKeyDown(wxKeyEvent
&
event
)
...
{
int ca = event.GetModifiers();
int code = event.GetKeyCode();
if (code=='Q' && ca==wxMOD_ALTGR )
...{
this->Close();
}
event.Skip();
}
帮助文档:
http://www.wxwidgets.org/manuals/2.8.4/wx_wxkeyevent.html
http://www.wxwidgets.org/manuals/2.8.4/wx_keymodifiers.html#keymodifiers
wxWidgets:处理键盘组合键事件
这篇博客介绍了如何在wxWidgets中响应wxEVT_KEY_DOWN事件,特别是处理键盘组合键的消息。首先,你需要在Dialog类中声明相应的事件处理函数,这个函数必须没有返回值,并且参数具有特定的要求。具体的声明和参数细节可以参考wxWidgets的官方文档。

被折叠的 条评论
为什么被折叠?



