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

标签 delphi delphi-xe2

我需要在主窗体的右侧有两个 TToolBar,所以我放置了三个 TPanel 进行对齐,然后放置 TToolBar 在它们里面。过去一天我一直试图告诉工具按钮具有相同的宽度,但无济于事。这是我所得到的屏幕截图: enter image description here

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

最佳答案

看看这个方法:

  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”。

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

关于delphi - 为什么当 ShowCaption 设置为 True 时,TToolBar 会自动计算按钮宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15219524/

相关文章:

德尔福XE2风格: Main Menu Ignored

delphi - 视觉组件在设计模式下不可见,无法在Fire Monkey中恢复

delphi - 如何远程调试使用运行时包构建的 Win32 VCL 应用程序

Delphi - 使用关联程序从 MemoryStream 打开文件

delphi - RIDL 的刷新实现不生成 OLE 控制代理类声明

delphi - 在 VCL 中的 DbGrids.pas 中禁用自动更改键盘布局

web-services - Delphi 中最简单的 Web 服务

delphi - 如何使类完成即使对于空参数列表也包含括号?

delphi - Delphi中GetPixel和Canvas.Pixels的区别

delphi - 从定界符分隔值文件还原数据集