最近引起我注意的是,我们的应用程序之一在非主题Windows上的绘制错误。
工具栏由嵌套在TToolbar中的TSpeedButtons构建,而TSpeedButtons又位于页面控件中。
在主题Windows上,一切看起来都很不错。好吧,不好,但是还可以。
但是,在非主题Windows上,按钮内会出现奇怪的垂直线。
我到处搜寻,但找不到任何有关此问题的报告。 (很可能我的搜索功夫很烂。)有人知道这个问题的描述吗,或者甚至知道解决办法吗?
最佳答案
TToolbar
并非用于容纳TSpeedButtons
。它被设计为容纳TToolButtons
,它不仅可以放置在TToolBar
上,而且还经过专门编写,可以正确地显示在酒吧上。
您遇到的问题(尤其是以分隔符的方式绘制分隔符)是因为您使用的是不兼容的TSpeedButton
并使用TToolButton
分隔符将它们分隔开。 TSpeedButton
在TPanel
上可以很好地工作,并且IIRC是为MS在ComCtl中提供TToolBar/TToolButton
对之前设计的。
一个同时具有TToolBar
和TToolButtons
和TPanel
和TSpeedButtons
的快速测试应用程序,应该可以解决问题。
编辑:您的评论不是很正确。 :)
将TToolBar.AllowTextButtons
设置为True,然后将要设置的按钮宽设置为tbsTextButton
。如您所见,我使用了一个普通按钮,一个分隔符,一个文本按钮(带有文本和图像),一个分隔符和另一个普通按钮。