Delphi 如何替代图形TBitBtn图示符?
在编写从Delphi 如何替代图形TBitBtn图示符?,delphi,drawing,delphi-xe7,Delphi,Drawing,Delphi Xe7,在编写从TBitBtn继承的自定义控件时,我正在寻找一种方法来覆盖或截取图示符的绘制,并自己绘制图示符,而不必重新绘制整个控件。我广泛使用VCL样式,并希望避免重新创建所有绘图和样式挂钩等。不幸的是,我在TBitBtn中找不到任何允许这样做的内容 我如何截取TBitBtn.Glyph的绘制,并在保留控件的所有自然样式绘制的同时,自己将Glyph绘制到按钮画布上?控件使用TButtonGlyph类绘制Glyph,不幸的是,没有与绘制相关的任何方法(TButtonGlyph.DrawButtonGl
TBitBtn
继承的自定义控件时,我正在寻找一种方法来覆盖或截取图示符的绘制,并自己绘制图示符,而不必重新绘制整个控件。我广泛使用VCL样式,并希望避免重新创建所有绘图和样式挂钩等。不幸的是,我在TBitBtn
中找不到任何允许这样做的内容
我如何截取TBitBtn.Glyph
的绘制,并在保留控件的所有自然样式绘制的同时,自己将Glyph绘制到按钮画布上?控件使用TButtonGlyph
类绘制Glyph,不幸的是,没有与绘制相关的任何方法(TButtonGlyph.DrawButtonGlyph
,TButtonGlyph.Draw
)被标记为虚拟。因此,为了只改变字形的绘制方式,您可以绕道修补TButtonGlyph.DrawButtonGlyph
或ButtonGlyph.Draw
过程。我将“重新介绍”一个新的Glyph
属性,并重写实际调用DrawItem
的CNDrawItem
。继承CNDrawItem
后,绘制自己的Glyph
。