我想剪掉火猴形式的一部分, 通过使用LWA_COLORKEY调用SetLayeredWindowAttributes,窗体的黑色部分变得可点击但不透明?
uses
Winapi.Windows, FMX.Platform.Win
SetWindowLong(FmxHandleToHWND(Form1.Handle), GWL_EXSTYLE, GetWindowLong(FmxHandleToHWND(Form1.Handle), GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes( FmxHandleToHWND(Form1.Handle), RGB(0,0,0), 70, LWA_COLORKEY );
最佳答案
如果您检查 SetLayeredWindowAttributes 函数定义,您将看到第三个参数定义了 alpha 值来描述分层窗口的不透明度。
您已将其设置为 70,大约是 27% 的透明度。
如果您想要完全透明,则应将其设置为 0。
编辑:我猜这应该适用于 VCL 和 FMX 应用程序,因为 SetLayeredWindowAttributes 是一个 Windows API 函数,但我猜我错了。
但是,我确实发现了一个关于如何从这里为整个 FMX 设置部分透明度的问题,SO AlphaBlend in FireMonkey
也许您可以修改该代码以仅使表单的部分内容透明。
关于delphi - 通过设置透明颜色来剪切火猴形状的一部分不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175724/