在编写一个继承自TBitBtn
的自定义控件时,我正在寻找一种方法来覆盖或截取字形的绘制并自己绘制字形,而不必重绘整个控件。我广泛使用VCL样式,我希望避免重新创建所有绘图和样式挂钩等。很遗憾,我无法在TBitBtn
内找到任何可以允许此内容的内容。
如何拦截TBitBtn.Glyph
的绘图并自动将字形绘制到按钮画布上,同时保留控件的所有自然风格的绘图?
答案 0 :(得分:3)
TBitBtn
控件使用TButtonGlyph
类来绘制字形,遗憾的是,与绘制(TButtonGlyph.DrawButtonGlyph
,TButtonGlyph.Draw
)相关的所有方法都没有标记为虚拟。 因此,为了只改变绘制字形的方式,您可以使用绕道修补TButtonGlyph.DrawButtonGlyph
或ButtonGlyph.Draw
程序。