如何覆盖绘制TBitBtn字形?

时间:2015-02-04 16:17:38

标签: delphi drawing delphi-xe7

在编写一个继承自TBitBtn的自定义控件时,我正在寻找一种方法来覆盖或截取字形的绘制并自己绘制字形,而不必重绘整个控件。我广泛使用VCL样式,我希望避免重新创建所有绘图和样式挂钩等。很遗憾,我无法在TBitBtn内找到任何可以允许此内容的内容。

如何拦截TBitBtn.Glyph的绘图并自动将字形绘制到按钮画布上,同时保留控件的所有自然风格的绘图?

1 个答案:

答案 0 :(得分:3)

TBitBtn控件使用TButtonGlyph类来绘制字形,遗憾的是,与绘制(TButtonGlyph.DrawButtonGlyphTButtonGlyph.Draw)相关的所有方法都没有标记为虚拟。 因此,为了只改变绘制字形的方式,您可以使用绕道修补TButtonGlyph.DrawButtonGlyphButtonGlyph.Draw程序。