最近引起我注意的是,我们的应用程序之一在非主题Windows上的绘制错误。

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

在主题Windows上,一切看起来都很不错。好吧,不好,但是还可以。



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



我到处搜寻,但找不到任何有关此问题的报告。 (很可能我的搜索功夫很烂。)有人知道这个问题的描述吗,或者甚至知道解决办法吗?

最佳答案

TToolbar并非用于容纳TSpeedButtons。它被设计为容纳TToolButtons,它不仅可以放置在TToolBar上,而且还经过专门编写,可以正确地显示在酒吧上。

您遇到的问题(尤其是以分隔符的方式绘制分隔符)是因为您使用的是不兼容的TSpeedButton并使用TToolButton分隔符将它们分隔开。 TSpeedButtonTPanel上可以很好地工作,并且IIRC是为MS在ComCtl中提供TToolBar/TToolButton对之前设计的。

一个同时具有TToolBarTToolButtonsTPanelTSpeedButtons的快速测试应用程序,应该可以解决问题。

编辑:您的评论不是很正确。 :)



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

10-04 16:38