有没有办法在选中时保持按钮不绘制轮廓?

时间:2009-12-27 02:32:33

标签: delphi custom-controls themes

我构建了一个自定义控件,并且主题支持看起来很奇怪。是否有任何方法可以使它总是用主题绘制,即使应用程序是使用主题支持构建的?

编辑:我找到了一种方法来解决这些问题并没有多大帮助。问题是它是TBitBtn的一个特殊按钮,每当选择该按钮时,它会尝试用虚线画出一个边框,这会妨碍它。如何关闭

2 个答案:

答案 0 :(得分:3)

您可以尝试复制 TBitBtn.DrawItem 的实现,并根据您的需要进行调整。在代码中搜索 IsFocused 可以为您提供指导。

要调用修补代码,您还必须通过实现类似的消息处理程序来链接CNDrawItem方法。

答案 1 :(得分:0)

您可以使用SetWindowTheme

中的UxTheme.pas功能停用组件的主题

这将禁用按钮和进度条的主题

...
SetWindowTheme(Button.Handle, ' ', ' ');
SetWindowTheme(ProgressBar.Handle, ' ', ' ');
...