2009-05-15 13 views
2

Meine Anwendung (nur Microsoft Windows) verwendet eine wxToolBar mit wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT Flags gesetzt. Alle Tasten/Werkzeuge haben die gleiche Breite, die auf dem längsten Text basiert.wxToolBar mit dynamisch großen Schaltflächen

Ich hätte gerne Schaltflächen mit unterschiedlichen Breiten, abhängig von der Länge der Werkzeugbeschriftung, genau wie die Windows nativen Symbolleisten-Schaltflächen (erstellt mit dem BTNS_AUTOSIZE Stil).

Gibt es eine Möglichkeit, wxToolBar mit Schaltflächen mit dynamisch berechneter Breite zu erhalten?

Antwort

3

Ich nehme an, Sie wollen dies für MS Windows, da Sie die BTNS _ AUTOSIZE Stil erwähnen.

Es gibt keine Möglichkeit, dies zu tun mit wxToolBar Arten oder Parameter an AddTool(). Ich habe versucht mit WxMSW, und die einzige Möglichkeit, automatische Größenanpassung Schaltflächen (die ich finden konnte) zu erreichen ist, indem Sie die wxToolBar :: Realize() Methode in src/msw/tbar95.cpp (src/msw/toolbar.cpp in wxWidgets trunk), um die BTNS _ AUTOSIZE Art an den Stellen hinzuzufügen, an denen die Schaltflächen hinzugefügt werden. Dies ist eine virtuelle Methode, so dass Sie immer Ihre eigene Klasse für absteigende Symbolleisten erstellen und die Methode Realize() kopieren und ändern können.

+0

Vielen Dank. Ich dachte darüber nach, absteigende Klassen zu erstellen, wollte aber wissen, ob es eine einfachere Lösung gibt. – Wacek

Verwandte Themen