我有一个具有以下布局的GUI应用程序:
wxFrame --> wxBoxSizer --> wxImagePanel
wxImagePanel是一个自定义控件(可用here)。我稍微修改它以处理鼠标事件(使用EVT_MOTION),如拖动,允许我平移图像。
现在,不幸的是,这在Windows上看起来很丑 - 有深灰色背景。推荐的方法是add a wxPanel到wxFrame - 这会让丑陋的背景消失。该应用程序现在布局如下:
wxFrame --> wxBoxSizer --> wxPanel --> wxBoxSizer --> wxImagePanel (a custom control)
它看起来好多了,但现在我添加的wxPanel正在抓取所有鼠标运动事件。他们没有通过孩子wxImagePanel,所以我再也无法平息我的形象了。
如何确保鼠标运动事件通过子wxImagePanel?
答案 0 :(得分:0)
正常的顺序是
wxFrame - > wxPanel - > wxBoxSizer
我认为你会更好地使用它,就像这样
wxFrame - > wxImagePanel - > wxBoxSizer
或
wxFrame - > wxPanel - > wxBoxSizer - > wxImagePanel
答案 1 :(得分:0)
我通过询问wxWidgets forums来解决问题。
基本上,我的问题是wxImagePanel是wxFrame的子代,而它应该是wxPanel的子代。