【发布时间】:2014-11-26 21:37:49
【问题描述】:
有一个 wxAuiToolBar 在运行时添加和删除项目。 不幸的是,在添加或删除项目时,工具栏没有正确更新(绘制)
创建工具栏:
_toolbar = new wxAuiToolBar(this, wxID_ANY, wxDefaultPosition, wxDefaultSize,
wxAUI_TB_DEFAULT_STYLE |
wxAUI_TB_OVERFLOW |
wxAUI_TB_TEXT |
wxAUI_TB_HORZ_TEXT);
_mgr.AddPane(_mdi_frames_toolbar, wxAuiPaneInfo().
Name("tbxxx").Caption("xxx caption").ToolbarPane().Top().Gripper(true).Dockable(true).Floatable(true).CaptionVisible(false));
...
_mgr.Update();
添加项目时我会做什么:
wxAuiToolBarItem* pItem=_toolbar->AddTool(wxID_TCMDI_FRAME_TOOL_TB + pchild->uid(),pchild->GetName(),wxNullBitmap,"",wxITEM_NORMAL);
_toolbar->Realize();
这使新工具可见,但工具栏的上下框架在 新工具。重复这一点,它迟早会产生垃圾。 似乎工具栏本身没有正确更新。
如果我添加
_mgr.Update();
在添加工具之后,在我通过抓手移动工具栏之前,该工具不可见。
谁能告诉我要怎么做才能正确更新 aui 工具栏 添加了一个工具(在初始添加工具之后,效果很好)?
提示:跳过 size 事件的宿主框架。
我在 Windows 7 中使用 wxWidgets 3.01,调试 64 静态构建。 在发布版本中也会发生同样的情况。
谢谢
【问题讨论】: