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

问题描述 投票:0回答:3

我需要在主窗体的右侧有两个

TToolBar
,因此我放置了三个
TPanel
用于对齐,然后将
TToolBar
放在其中。过去一天我一直试图告诉
toolbutton
具有相同的宽度,但无济于事。这是我所得到的屏幕截图: enter image description here

我发现如果

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

delphi delphi-xe2
3个回答
2
投票

看看这个方法:

  1. 将所有按钮的 Autosize 设置为 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”。

了解更多详情:http://zarko-gajic.iz.hr/ttoolbars-ttoolbutton-autosize-width-issues-empty-caption/


0
投票

按钮的宽度是根据TtoolButton最长标题的文本宽度计算的


-2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.