如何解決wxFrame的key event不好使的問題。

     用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事件。
如在wxPanel中的keydown事件代碼
OnKeyDown(wxKeyEvent& event)
{
    ((wxFrame
*)GetParent())->OnKeyDown(event);
}
 
    據說還有別的方法,比如用Connect方法將所有的子控件的事件和wxFrame的事件連起來。不過這些方法我沒有試,如果哪位閱讀了此文,可以去試一試。有什麼結果,請回復。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章