TToolBar在非主题Windows上绘制错误

gab*_*abr 3 delphi toolbar

最近我注意到我们的一个应用程序在非主题Windows上绘制错误.

工具栏是由嵌套在TToolbar中的TSpeedButtons构建的,而TToolbar又存在于页面控件中.

在主题Windows上一切都很好看.嗯,不好,但还可以.

主题Windows上的TToolbar

但是,在非主题的Windows上,按钮内部会出现奇怪的垂直线条.

非主题Windows上的工具栏

我已经四处搜索,但找不到任何有关此类问题的报告.(最有可能只是我的搜索功夫糟透了.)有人知道这个问题的描述,或者更好的是,修复?

Ken*_*ite 6

TToolbar不是为了容纳TSpeedButtons.它被设计成可以保持TToolButtons,不仅可以坐在上面TToolBar,而且可以专门写在酒吧上.

您遇到的问题(尤其是分隔符按照它们的方式绘制)是因为您使用的是不兼容的TSpeedButton并将它们与TToolButton分隔符分开.TSpeedButton在a上运行良好TPanel,IIRC的设计就是在MS提供TToolBar/TToolButtonComCtl对之前.

同时具有简单的测试应用程序TToolBarTToolButtonsTPanelTSpeedButtons应看是否能解决问题.

编辑:你的评论不太正确.:)

在此输入图像描述

将"设置"设置TToolBar.AllowTextButtons为"真",然后将要设置的按钮设置为更宽tbsTextButton.如您所见,我使用了普通按钮,分隔符,文本按钮(带有文本和图像),分隔符和另一个普通按钮.