2

私のアプリケーション (Microsoft Windows のみ) は、フラグが設定された wxToolBar を使用していwxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUTます。ボタン/ツールはすべて同じ幅で、最も長いテキストに基づいています。

BTNS_AUTOSIZEWindows のネイティブ ツールバー ボタン (スタイルで作成) のように、ツール ラベルの長さに応じて、異なる幅のボタンを使用したいと考えています。

動的に計算された幅を持つボタンで wxToolBar を取得する方法はありますか?

4

1 に答える 1

3

BTNS_AUTOSIZEスタイルについて言及しているので、MS Windows でこれが必要だと思います。

wxToolBarスタイルまたはAddTool()へのパラメータでこれを行う方法はありません。wxMSW で試してみましたが、(私が見つけた) ボタンの自動サイズ変更を実現する唯一の方法は、src/msw/tbar95.cpp のwxToolBar ::Realize()メソッドを変更することです( src/msw/toolbar.cppのwxWidgets トランク) を使用して、ボタンが追加される場所にBTNS_AUTOSIZEスタイルを追加します。これは仮想メソッドであるため、常に独自の降順ツールバー クラスを作成し、Realize()メソッドをコピーして変更することができます。

于 2009-05-15T18:45:29.060 に答える