我构建了一个自定义控件,并且主题支持看起来很奇怪。是否有任何方法可以使它总是用主题绘制,即使应用程序是使用主题支持构建的?
编辑:我找到了一种方法来解决这些问题并没有多大帮助。问题是它是TBitBtn的一个特殊按钮,每当选择该按钮时,它会尝试用虚线画出一个边框,这会妨碍它。如何关闭 ?答案 0 :(得分:3)
您可以尝试复制 TBitBtn.DrawItem 的实现,并根据您的需要进行调整。在代码中搜索 IsFocused 可以为您提供指导。
要调用修补代码,您还必须通过实现类似的消息处理程序来链接CNDrawItem方法。
答案 1 :(得分:0)
您可以使用SetWindowTheme
UxTheme.pas
功能停用组件的主题
这将禁用按钮和进度条的主题
...
SetWindowTheme(Button.Handle, ' ', ' ');
SetWindowTheme(ProgressBar.Handle, ' ', ' ');
...