1

我希望能够在我正在开发的应用程序中将某种样式应用于少数 BitBtn。我已经应用了 VCL 样式来为我的整个应用程序设置皮肤。

根据我在网上阅读的理解,我可以定义我自己的 TBitBtn 子类,然后我可以为给定的类定义一个样式挂钩。

我让它与 TLabel 和 TEdit 一起工作,但我不太确定如何为 TButton 或 TBitBtn 管理它。本质上,我想对自定义 TBitBtn 应用不同的背景图像,而不是主题中包含的背景图像。

4

1 回答 1

4

TBitBtn使用 Vcl 样式修改外观,取决于您的 Delphi 版本

XE4, XE5

您必须创建一个从该类派生的新样式挂钩TBitBtnStyleHook,然后覆盖该DrawButton方法。检查这个问题Disabling TButton issue on a VCL styled form,我发布了一个示例代码,在这种情况下覆盖该TButtonStyleHook.Paint方法以修复错误,但您可以根据自己的需要调整相同的代码。

XE2, XE3

在这些TBitBtn版本上不使用样式挂钩,因此您唯一的选择是处理TBitBtn控件的 CN_DRAWITEM 消息,然后添加您自己的代码来绘制按钮,如本答案Delphi XE2 VCL 样式中所述,如何禁用 VCL 样式TBitBtn?

于 2013-10-02T16:50:52.407 回答