TBitBtn仅使用旧版Windows主题显示

adl*_*bac 3 delphi user-interface manifest button delphi-6

我为我的Delphi 6应用程序创建了清单文件,因此它可以根据Windows定义的主题(控件6.0)显示控件.一切看起来很好,除了TBitBtn组件,使用遗留主题显示:

遗产TBitBtn

无论当前主题如何,即使没有为TBitBtn组件分配图像,Windows XP和Windows 7上的行为也是相同的.

现在,当我TButton在表单上放置常规组件时,它会显示OK.如果我在运行时(使用SendMessage(Handle, BM_SETIMAGE, IMAGE_ICON, LPARAM(Icon)))以编程方式将图像设置为此按钮,它会立即将其样式恢复为旧样式.

有没有办法要么TBitBtn使用正确的样式,要么在常规上显示字形TButton而不恢复到Delphi 6中的遗留字体?

Dav*_*nan 5

在Delphi 6中,仅添加comctl32 v6清单是不够的.您还需要修改VCL才能识别主题.该TBitBtn控件是一个VCL实现的控件,在其Delphi 6版本中,对XP主题一无所知.

处理此问题的标准方法是添加一些执行魔术的第三方软件.那是Mike LischkeXP主题经理.

这是包含主题管理器的Delphi 6应用程序的屏幕截图:

在此输入图像描述

  • 谢谢你的回答.令我困惑的是,当我将图像设置为运行时,TButton`在运行时恢复到遗留原因. (3认同)