2

我的应用程序(仅限 Microsoft Windows)正在使用带有wxTB_HORIZONTAL|wxTB_TEXT|wxTB_HORZ_LAYOUT标志的 wxToolBar。它的所有按钮/工具都具有相同的宽度,这是基于最长的文本。

我想要不同宽度的按钮,具体取决于工具标签的长度,就像 Windows 原生工具栏按钮(使用BTNS_AUTOSIZE样式创建)一样。

有没有办法让 wxToolBar 带有动态计算宽度的按钮?

4

1 回答 1

3

我假设你想要这个用于 MS Windows,因为你提到了BTNS_AUTOSIZE风格。

使用wxToolBar样式或AddTool()的参数无法做到这一点。我尝试过使用 wxMSW,实现自动调整按钮大小的唯一方法(我能找到)是通过更改src/msw/tbar95.cpp中的wxToolBar::Realize()方法(src / msw/toolbar.cpp在wxWidgets trunk) 在添加按钮的地方添加BTNS_AUTOSIZE样式。这是一个虚拟方法,因此您始终可以创建自己的降序工具栏类,复制Realize()方法并对其进行更改。

于 2009-05-15T18:45:29.060 回答