【问题标题】:How to override drawing TBitBtn Glyph?如何覆盖绘图 TBitBtn 字形?
【发布时间】:2015-02-05 02:01:24
【问题描述】:

在编写从TBitBtn 继承的自定义控件时,我正在寻找一种方法来覆盖或拦截仅绘制字形并自己绘制字形,而不必重绘整个控件。我广泛使用 VCL 样式,并希望避免重新创建所有绘图和样式挂钩等。不幸的是,我在 TBitBtn 中找不到任何可能允许这样做的东西。

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

【问题讨论】:

  • 我将“重新引入”一个新的Glyph 属性,并覆盖实际调用DrawItemCNDrawItem。继承CNDrawItem后,画出自己的Glyph

标签: delphi drawing delphi-xe7


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 1970-01-01
    • 2023-04-08
    • 2021-10-28
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    相关资源
    最近更新 更多