実行時にアイテムが追加および削除される 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 の静的ビルドをデバッグします。リリースビルドでも同じことが起こります。
ありがとうございました