2012-06-14 51 views
0

我與以下佈局的GUI的應用程序:允許子面板處理的鼠標移動事件

wxFrame --> wxBoxSizer --> wxImagePanel 

的wxImagePanel是一個定製的控制(購here)。我已經稍微修改了它來處理鼠標事件(使用EVT_MOTION),如拖動,可以讓我平移圖像。

現在,不幸的是,這在Windows上看起來很醜 - 有一個深灰色的背景。推薦的方法是對wxFrame使用add a wxPanel - 這會讓醜陋的背景消失。該應用現已奠定了這樣的:

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

它看起來好了很多,但現在我已經添加了wxPanel是抓住所有的鼠標移動事件。他們沒有通過孩子wxImagePanel,所以我不能平移我的形象了。

如何確保鼠標移動事件通過子wxImagePanel?

回答

0

我已通過詢問wxWidgets forums解決了該問題。

基本上,我的問題是wxImagePanel是wxFrame的孩子,而它本應該是wxPanel的孩子。

0

事物的正常秩序是

wxFrame - > wxPanel - > wxBoxSizer

我想你會做更好的使用這個,像這樣

wxFrame - > wxImagePanel - - > wxBoxSizer

wxFrame - > wxPanel - > wxBoxSizer - > wxImagePanel

+0

我正在使用wxFormBuilder,它似乎不允許將wxPanel直接添加到wxFrame而不使用sizer作爲框架。 – misha