delphi - 通过设置透明颜色来剪切火猴形状的一部分不起作用?

标签 delphi firemonkey

我想剪掉火猴形式的一部分, 通过使用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/

相关文章:

delphi - FIREMONKEY - 加载替代字体

delphi - 如何右键弹出窗体?

c# - 如何为 COM 编码流

delphi - 是否可以在 FMX 中为 TGlyph 设置 OnClick 事件?

FireMonkey 的 HTML 查看器

android - 德尔福XE8。调音台。为什么Android平台上CLASS VAR的发布顺序不同?

delphi - 如何在Delphi中使用TDbEdit设置价格小数点

delphi - 在 Delphi 中如何将动态数组保存到 FileStream?

multithreading - 复制工作线程的字符串

Delphi FireMonkey Canvas 性能问题