gpt4 book ai didi

delphi - 使用普通 Canvas /文本输出更新LayeredWindow

转载 作者:行者123 更新时间:2023-12-03 15:24:15 26 4
gpt4 key购买 nike

有没有一种方法可以使用 Canvas 在表单上绘图,然后使用 updatelayeredwindow,这样表单就不会可见,但文本可见,就像只显示文本的半透明表单一样?如果没有,那么有没有办法只用 Canvas (opengl/directx)制作某种半透明形式?我想在所有窗口的顶部使用命令进行绘图。

最佳答案

您可以将表单的TransparentColor属性设置为“True”,然后将表单颜色设置为与TransparentColorValue相同的颜色,以及所有表单的工作区将是透明的。如果您使用的 Delphi 版本没有“TransparentColor[Value]”属性,您可以通过 API 调用实现相同的效果:

  Color := clBlack;
SetWindowLong(Handle, GWL_EXSTYLE,
GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED );
SetLayeredWindowAttributes(Handle, 0, 255, LWA_COLORKEY);

将使表单客户区透明。您可以像平常一样在 Canvas 上绘画:

procedure TForm1.FormPaint(Sender: TObject);
begin
Canvas.Font.Color := clWhite;
Canvas.TextOut(0, 0, 'Text');
end;

当然,您也可以在表单上放置一个字体颜色与透明颜色不同的标签。

关于delphi - 使用普通 Canvas /文本输出更新LayeredWindow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8555484/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com