用wxWidgets做个程序,弄了一上午,那个wxFrame上的KeyDown事件怎么也不响应。后来找来wxWidgets本身的一个简单例 子,一个wxFrame,一个wxButton,当然,还有一个KeyDown事件。说来也奇怪,当我的焦点在button上时,wxFrame上的 KeyDown就好使了,而不在button上时,就不好使了,不知道wxFrame的源码是怎么写的。
郁闷了好久、不过后来在国外的一个专门讨论wxWidgets的forum上找到了答案,说wxFrame的key事件是有些不太好使,要想使 wxFrame上的key事件好使,就在wxFrame上放一个wxPanel,使用wxPanel的key事件就可以了。在wxPanel的key事件 调用wxFrame中的key事件。
郁闷了好久、不过后来在国外的一个专门讨论wxWidgets的forum上找到了答案,说wxFrame的key事件是有些不太好使,要想使 wxFrame上的key事件好使,就在wxFrame上放一个wxPanel,使用wxPanel的key事件就可以了。在wxPanel的key事件 调用wxFrame中的key事件。
如在wxPanel中的keydown事件代码
OnKeyDown(wxKeyEvent&
event)
{
((wxFrame*)GetParent())->OnKeyDown( event);
}
{
((wxFrame*)GetParent())->OnKeyDown( event);
}
据说还有别的方法,比如用Connect方法将所有的子控件的事件和wxFrame的事件连起来。不过这些方法我没有试,如果哪位阅读了此文,可以去试一试。有什么结果,请回复。
本文转自银河使者博客园博客,原文链接http://www.cnblogs.com/nokiaguy/archive/2008/05/16/1201091.html如需转载请自行联系原作者
银河使者