TCustomControl上的TGraphicControl透明度

时间:2015-09-21 04:42:19

标签: delphi components vcl

我创建了一个基于TGraphicControl的控件,它是透明的,大多是空的空间。它实际上在线条艺术中实现了一个简单的符号 即ControlStyle := ControlStyle + [csOpaque];

在我的构造函数中:

{{1}}

我的" TLFMagicControl"然后放在我自己的面板上,这是一个TCustomControl。 即TLFGridPanel = class(TCustomControl)

TLFMagicControl的透明度可以完美地相互交互,但不能与它们所在的父面板(TLFGridPanel)完美交互。

TLFGridPanel的大部分时间都是黑色,因此它不是问题,但我希望用户能够打开/关闭面板上的网格线。当我覆盖绘制处理程序TLFGridPanel并绘制我的网格时,放在顶部的控件不透明并阻挡下面的网格线。

对于TCustomControl有没有办法解决这个问题,或者我为我的面板选择了错误的基础?

Example of non transparent controls

1 个答案:

答案 0 :(得分:1)

csOpaque告诉VCL你完全自己绘制控件,它会自动进行背景绘制(或擦除)。删除该控件样式以让WM_ERASEBKGND完成其工作。