我创建了一个基于TGraphicControl的控件,该控件是透明的,并且大部分是空空间。它实际上在线条艺术中实现了一个简单的符号。即TLFMagicControl = class(TGraphicControl)
在构造函数中,我有:
ControlStyle := ControlStyle + [csOpaque];然后,我的"TLFMagicControl“被放置在我自己的面板上,即TCustomControl。即TLFGridPanel = class(TCustomControl)
TLFMagicControl的透明度可以彼此完美地交互,而不是与他们所在的父面板(TLFGridPanel)进行交互。
TLFGridPanel的大部分时间都是黑色的,所以这不是问题,但我希望用户能够打开/关闭面板上的网格线。当我覆盖油漆处理程序TLFGridPanel并绘制我的网格时,放在顶部的控件是不透明的,并阻塞下面的网格线。
对于TCustomControl来说,有什么方法可以绕过这个问题吗?还是我为我的面板选择了错误的基础?

发布于 2015-09-21 06:54:46
csOpaque告诉VCL,您完全自己绘制控件,这会抑制自动背景绘图(或擦除)。删除该控制样式,以便让WM_ERASEBKGND完成它的工作。
https://stackoverflow.com/questions/32687488
复制相似问题