0

我正在寻找一种 AlphaBlend 子窗体的方法,如果可能的话,使用分层窗口,因为它后面会有交互式控件。

问题是我在常规 TForm 中有一个组件,它绘制多个可视层(绘图、图片......)。在某些时候我需要在这个表单上(就地)实例化一个编辑器控件,这个控件将涉及我的控件之外的各种标准输入控件(编辑框、复选框等),但是我想覆盖正在使用 Alpha 混合编辑的图层前面的图层(并WS_EX_TRANSPARENT使其点击通过)。

我首先想到的是为此使用子表单(无边界TForms 是组件的父级),并且效果很好,直到 AlphaBlended TForm 根本不进行 alphablend,但一旦成为父级就会变得不透明......

然后,我尝试取消 alphablended 表单的父级,将其设置为 fsStayOnTop,并通过对相关事件做出反应,将其保持在屏幕上的组件前面,这可行,但这并不是一个真正令人满意的解决方案:alphablended StayOnTop 表单是也在应用程序的其他模态和非模态形式之前,如果用户决定将它们移动到组件前面......

那么,关于让子表单成为字母混合的方式的任何其他想法?(或表现得像这样)

4

1 回答 1

2

根据 MSDN,您不走运,因为WS_EX_LAYERED不能用于子窗口

当您的表单/应用程序失去焦点时,也许您可​​以隐藏所有编辑器表单,这至少可以防止它们位于其他窗口之上。不过,还是不太满意……

于 2009-05-05T13:29:36.390 回答