我注意到当你将按钮的样式设置为tbsDropdown时,TToolButton的高度会增加.我可以理解宽度增加,所以按钮有空间绘制向下箭头,但我不确定高度增加是否必要.
重现问题的步骤(Delphi 2010,Windows 7 x64):
当分配给工具栏的图像时,会发生相同的高度增加,在这种情况下,按钮中已有足够多的垂直空间可用于绘制下拉列表.
这是一个可视化示例: alt text http://img440.imageshack.us/img440/1462/ttoolbar02.png alt text http://img291.imageshack.us/img291/966/ttoolbar01.png
是否有一个解决方法,没有黑客攻击VCL,或者这是硬编码到Windows控件?
它是底层 Windows 控件的一部分。快速查看ComCtrls表明更改TToolButton.Style调用它的SetStyle方法。如果 in为 True SetStyle,则和均设置为 0,并调用 。ShowCaptionsTToolBar.ButtonWidthButtonHeightTToolButton.RecreateButtons
RecreateButtons,依次调用,它只是向使用的TToolBar.ResizeButtons人发送(发布)一条消息ToolBar
Perform(TB_AUTOSIZE, 0, 0);
Run Code Online (Sandbox Code Playgroud)
TB_AUTOSIZE根据MSDN 的说法,旨在使用,
通过设置按钮或位图大小或首次添加字符串来更改工具栏的大小后。
由于SetStyle将ButtonWidth和 都设置ButtonHeight为 0,因此该消息似乎已正确发送。
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |