为什么当ShowCaption设置为True时,TToolBar会自动计算按钮宽度?

时间:2013-03-05 08:56:23

标签: delphi delphi-xe2

我需要在主窗体的右侧有两个TToolBar,因此我将三个TPanel用于对齐,然后将TToolBar放入其中。我一直试图告诉toolbutton s在过去的一天有相同的宽度,但无济于事。这是我所获得的屏幕截图: enter image description here

我发现如果ShowCaption设置为True,工具栏会自动计算按钮宽度。我的问题是为什么,以及如何禁用它?

2 个答案:

答案 0 :(得分:2)

看看这种方法:

  1. 将所有按钮的自动调整大小设置为False。
  2. 在Form的OnCreate事件中调用以下内容:SendMessage(ToolBar3.Handle,TB_SETBUTTONWIDTH, 0, MAKELPARAM(0, <DEFAULT_WIDTH_THAT_YOU_WANT_TO_SET>));
  3. 确保在上述调用之前不要更改任何按钮的Visible属性 - 因为对于那些不可见的按钮,它将失败。
  4. 另外,请确保在TB_SETBUTTONWIDTH消息的使用列表中有“CommCtrl”。
  5. 有关详情:http://zarko-gajic.iz.hr/ttoolbars-ttoolbutton-autosize-width-issues-empty-caption/

答案 1 :(得分:-2)

您可以使用对象检查器设置具有静态值的按钮宽度,或者您可以使用formcreate或onpaint或onresize等动态设置值........