请问如何把功能键绑定到按钮上,F1-F12。
我试过gtkmm的加速键,能把单个功能键绑定到按钮上,windows 和 linux都可以的。那wxWidgets如何实现呢?
谢谢!
如何把功能键绑定到按钮上。 Topic is solved
不好意思这么久才看到你这个帖子,不知道你还在不在。
我以前是这么做的(在MainFrame的构造函数中):
大意是,先把一个ID跟一个事件及其回调函数相联系,然后将该快捷键与该ID相联系。
上面这段代码中,我将Ctrl+回车与MainFrame::OnSendMessage相联系了。
更多细节可参见wxAcceleratorEntry 的文档。
-Utensil
我以前是这么做的(在MainFrame的构造函数中):
Code: Select all
wxAcceleratorEntry entries[1];
this->Connect( wxID_SendMessage,
wxEVT_COMMAND_BUTTON_CLICKED,
wxCommandEventHandler( MainFrame::OnSendMessage));
entries[0] = wxAcceleratorEntry( wxACCEL_CTRL, WXK_RETURN, wxID_SendMessage);
上面这段代码中,我将Ctrl+回车与MainFrame::OnSendMessage相联系了。
更多细节可参见wxAcceleratorEntry 的文档。
-Utensil
In fascination of creating worlds by words, and in pursuit of words behind the world.
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
On Github: http://utensil.github.com
Technical Blog in Chinese: http://utensil.iteye.com/
Utensil,您好,感谢您的回复.
我试过
我试过这两种方法,不过好像这两种本质上是没有区别,呵呵.
这样好像都不能绑定到按钮上.Ctrl+Up和Ctrl+D都不行..
绑定到菜单上是可以的.
我试过
Code: Select all
EVT_BUTTON( ID_BUTTON, mainwindow::OnButtonClick_ID1 )
wxAcceleratorEntry entries[2];
entries[0].Set(wxACCEL_NORMAL, WXK_F5, ID_MENU);
entries[1].Set(wxACCEL_CTRL, (int)'D', ID_BUTTON);
wxAcceleratorTable accel(2, entries);
SetAcceleratorTable(accel);
Code: Select all
wxAcceleratorEntry entries[1];
this->Connect( ID_BUTTON1,
wxEVT_COMMAND_BUTTON_CLICKED,
wxCommandEventHandler( mainwindow::OnSendMessage));
entries[0] = wxAcceleratorEntry( wxACCEL_CTRL, WXK_UP, ID_BUTTON1);
wxAcceleratorTable accel(1, entries);
SetAcceleratorTable(accel);
这样好像都不能绑定到按钮上.Ctrl+Up和Ctrl+D都不行..
绑定到菜单上是可以的.