0

我有一个具有以下布局的 GUI 应用程序:

wxFrame --> wxBoxSizer --> wxImagePanel

wxImagePanel 是一个自定义控件(可在此处获得)。我稍微修改了它以处理鼠标事件(使用 EVT_MOTION),例如允许我平移图像的拖动。

现在,不幸的是,这在 Windows 上看起来很丑 - 有一个深灰色的背景。推荐的方法是在 wxFrame 中添加一个 wxPanel——这使得丑陋的背景消失了。该应用程序现在布局如下:

wxFrame --> wxBoxSizer --> wxPanel --> wxBoxSizer --> wxImagePanel (a custom control)

它看起来好多了,但现在我添加的 wxPanel 正在抓取所有鼠标运动事件。他们没有通过子 wxImagePanel,所以我不能再平移我的图像了。

如何确保鼠标运动事件通过子 wxImagePanel?

4

2 回答 2

0

事情的正常顺序是

wxFrame --> wxPanel --> wxBoxSizer

我认为你会更好地使用它,就像这样

wxFrame --> wxImagePanel --> wxBoxSizer

或者

wxFrame --> wxPanel --> wxBoxSizer --> wxImagePanel

于 2012-06-14T15:48:07.797 回答
0

我通过在wxWidgets 论坛上提问解决了这个问题。

基本上,我的问题是 wxImagePanel 是 wxFrame 的孩子,而它应该是 wxPanel 的孩子。

于 2012-06-15T13:44:08.723 回答