我希望能够在我正在处理的应用程序中将一定的样式应用于少数BitBtn。我已经应用了VCL样式来整理我的整个应用程序。
根据我在网上阅读时的理解,我可以定义自己的TBitBtn子类,然后我可以为该给定的类定义一个样式钩子。
我让它与TLabel和TEdit一起使用,但我不太确定如何为TButton或TBitBtn管理它。基本上,我想将不同的背景图像应用于自定义TBitBtn而不是主题中包含的背景图像。
答案 0 :(得分:4)
使用Vcl样式修改TBitBtn
的外观,取决于您的Delphi版本
您必须创建一个派生自TBitBtnStyleHook
类的新样式钩子,然后覆盖DrawButton
方法。请查看此问题Disabling TButton issue on a VCL styled form
我发布了一个示例代码,在这种情况下覆盖TButtonStyleHook.Paint
方法以修复错误,但您可以根据自己的需要调整相同的代码。
TBitBtn
在这些版本上没有使用样式挂钩,因此您唯一的选择是处理TBitBtn
控件的CN_DRAWITEM消息,然后添加您自己的代码来绘制按钮,就像在这个答案Delphi XE2 VCL styles, How to disable VCL styles on TBitBtn?