有一个 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();
在 AddTool 之后,该工具不可见,直到我通过夹具移动工具栏。
任何人都可以告诉我如何在添加工具后正确更新 aui 工具栏(在初始添加工具之后,效果很好)?
提示:尺寸事件的主机框架被跳过。
我在 Windows 7 中使用 wxWidgets 3.01,调试 64 静态构建。在发布版本中也会发生同样的情况。
谢谢