【发布时间】:2015-03-31 02:52:04
【问题描述】:
头文件:
class ttFrame: public wxFrame
{
public:
ttFrame(wxFrame *frame, const wxString& title);
~ttFrame();
private:
enum
{
idMenuQuit = 1000,
idMenuAbout,
collapsible_key
};
void OnClose(wxCloseEvent& event);
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnEvent(wxCommandEvent& event);
void OnSpinEvent(wxSpinEvent& event);
wxCollapsiblePane *collpane;
void OnEventCollapsible(wxNavigationKeyEvent& event);
DECLARE_EVENT_TABLE()
};
主要功能:
wxBoxSizer *sizer = new wxBoxSizer(wxHORIZONTAL);
collpane = new wxCollapsiblePane(this, collapsible_key, "Collapsible pane:", wxDefaultPosition, wxSize(400,400), wxCP_NO_TLW_RESIZE);
sizer->Add(collpane);
wxWindow *win = collpane->GetPane();
wxSizer *paneSz = new wxBoxSizer(wxVERTICAL);
paneSz->Add(new wxStaticText(win, wxID_ANY, "test!"), 1, wxGROW|wxALL, 2);
win->SetSizer(paneSz);
paneSz->SetSizeHints(win);
SetSizer(sizer);
事件声明:
BEGIN_EVENT_TABLE(ttFrame, wxFrame)
EVT_NAVIGATION_KEY(ttFrame::OnEventCollapsible)
END_EVENT_TABLE()
事件函数发射器:
void ttFrame::OnEventCollapsible(wxNavigationKeyEvent& event)
{
wxMessageBox("Not event trigger on key TAB");
}
当我点击 TAB 键或某个功能键时,它不会触发事件。其他事件如 EVT_COLLAPSIBLEPANE_CHANGED(id, func): 有效。
在文档中说
EVT_NAVIGATION_KEY(func):处理导航键事件。
事件不会触发以显示 wxMessageBox()。
【问题讨论】:
标签: c++ events controls wxwidgets