`
qzriso
  • 浏览: 242412 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

WinAPI: SetLayeredWindowAttributes - 设置窗口的透明

阅读更多

//声明:
SetLayeredWindowAttributes(
  Hwnd: THandle;   {窗口句柄}
  crKey: COLORREF; {透明色}
  bAlpha: Byte;    {Alpha 值}
  dwFlags: DWORD   {LWA_COLORKEY(=1)表示使用透明色; LWA_ALPHA(=2)表示使用 Alpha 值}
): Boolean;        {是否成功设置}




//举例(控制外部程序的透明度, 用计算器举了个例子):
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{设定计算器的 Alpha 透明}
procedure TForm1.Button1Click(Sender: TObject);
var
  h: HWND;
  FormStyle: Integer;
begin
  h := FindWindow('SciCalc', nil);
  FormStyle := GetWindowLong(h, GWL_EXSTYLE);
  SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
  SetLayeredWindowAttributes(h, 0, 128, LWA_ALPHA);
end;

{设定计算器中的白色透明}
procedure TForm1.Button2Click(Sender: TObject);
var
  h: HWND;
  FormStyle: Integer;
begin
  h := FindWindow('SciCalc', nil);
  FormStyle := GetWindowLong(h, GWL_EXSTYLE);
  SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
  SetLayeredWindowAttributes(h, clWhite, 255, LWA_COLORKEY);
end;

end.

分享到:
评论

相关推荐

    AU3-透明窗口-图片.rar

    但是,这只能实现全窗口透明,无法实现部分透明。 2. 使用WinAPI函数`SetLayeredWindowAttributes()`:此函数可以设定窗口的透明度和颜色键。通过设置Alpha值,可以控制窗口的透明程度。同时,可以指定一个颜色键,...

    遮罩窗口 - 给窗口增加半透明模糊遮罩

    半透明效果可以通过设置窗口的透明度属性来实现,这通常涉及到WinAPI中的`SetLayeredWindowAttributes`函数。通过调整透明度参数,我们可以让遮罩窗口呈现出不同程度的透明。而模糊效果则需要用到更高级的图形处理...

    MFC实现透明窗体

    然后,动态加载User32.dll库并获取`SetLayeredWindowAttributes`函数的地址,最终调用此函数将窗口的透明度设置为128(半透明)。这里使用了`LWA_ALPHA`标志,表明透明度由`bAlpha`参数控制。 #### 结论 通过上述...

    如何设置窗口的透明区域

    2. **SetLayeredWindowAttributes**:这是Windows API中用于设置窗口透明度的关键函数。它接受四个参数:窗口句柄、颜色键、透明度值以及一个标志。颜色键用于指定哪些像素应该透明,通常设置为(0, 0, 0, 0)即黑色,...

    透明窗口源码 透明效果

    2. **SetLayeredWindowAttributes**:这是一个重要的WinAPI函数,用于设置窗口的透明度和颜色键。它可以改变窗口的透明度,通过设置alpha参数实现不同程度的透明。 3. **WM_PAINT消息**:当窗口需要重绘时,Windows...

    窗口的透明化实现c++

    首先,窗口透明化的基础是Windows API中的SetLayeredWindowAttributes函数。这个函数允许我们设置窗口的透明度以及颜色键。透明度由一个介于0和255之间的值表示,0表示完全透明,255表示完全不透明。颜色键则用于...

    透明窗口效果的电子标尺源代码

    对于透明窗口效果的电子标尺,源代码可能包括了处理窗口透明度、鼠标交互、测量逻辑等功能的实现。 - 开发者可能使用C++、C#、Java或Python等语言编写源代码,并依赖图形用户界面库如Qt、wxWidgets、WinAPI或跨平台...

    2008-边框半透明窗体

    例如,使用`SetLayeredWindowAttributes`函数可以设置窗体的透明度级别,同时通过修改窗体样式,如添加`WS_EX_LAYERED`风格,实现半透明边框。 3. **自定义控件绘图**:要实现边框半透明,还需要自定义窗体的边框...

    CAD2006透明窗口源码.rar

    在Windows系统中,实现窗口透明通常需要调用`SetWindowLong`函数来修改窗口样式,并使用`SetLayeredWindowAttributes`函数设置透明度。此外,可能还需要处理WM_PAINT消息以正确绘制透明区域。 2. **CAD编程接口**:...

    VC工程创建的透明窗口示例

    4. **设置透明度**:调用`SetLayeredWindowAttributes`函数,设置窗口的透明度。透明度由一个0到255之间的整数表示,0表示完全透明,255表示完全不透明。此外,还可以设置颜色关键值,使得窗口中该颜色变为透明。 5...

    透明对话框

    1. WinAPI:在Windows操作系统中,可以通过使用WinAPI函数如SetLayeredWindowAttributes来实现窗口的透明效果。通过设置特定的透明度级别,可以使窗口的部分或全部变得透明。 2. WPF:Windows Presentation ...

    vc6.0实现透明窗口

    4. **设置透明属性**:使用`SetLayeredWindowAttributes`函数设置窗口的透明度。 5. **更新窗口位置**:最后使用`SetWindowPos`确保窗口正确显示。 通过以上步骤,可以在VC6.0环境中实现一个具有透明效果的窗口。...

    一个制作透明窗口的控件

    首先,我们需要理解什么是窗口透明性。在计算机图形学中,透明度是指一个对象或窗口允许其背景部分可见的程度。这通常通过调整颜色的Alpha通道来实现,Alpha通道是颜色中的第四个值,用于表示颜色的不透明度,0表示...

    VC对话框以及设置对话框的透明度

    然后,使用 `SetLayeredWindowAttributes()` 函数设置对话框的透明度,其中最后一个参数Alpha值用于控制透明度,范围从0(完全透明)到255(完全不透明)。 4. **处理透明度的细节** 当设置透明度时,需要注意以下...

    透明的窗口,控件不透明

    实现透明窗口通常需要设置窗口的透明度属性,比如在WinAPI中使用`SetLayeredWindowAttributes`函数,可以调整窗口的透明度级别以及颜色键。但是,如果单纯使窗口透明,窗口内的控件(如按钮、文本框等)也会受到影响...

    一个用于窗口透明的类

    在编程领域,窗口透明是一种常见的视觉效果,可以让用户在不完全隐藏窗口的同时,透过窗口看到其下方的内容。这种效果在现代软件设计中被广泛应用,以提供更好的用户体验和界面美观性。本文将详细介绍如何使用一个...

    透明窗口(png, 透明背景)

    PNG是一种支持透明度的图形格式,其通过 alpha 通道来表示像素的透明程度,这使得它成为实现窗口透明效果的理想选择。 描述中提到的"网上抄的"可能是指网上的一些代码示例或教程,虽然具体的内容没有提供,但我们...

    类网络蚂蚁悬浮透明窗口的实现

    Windows API提供了`SetLayeredWindowAttributes`函数,该函数允许设置窗口的透明度和颜色键。通过改变透明度参数,我们可以实现用户可调节的透明度。 为了创建一个可调节透明度的悬浮窗口,我们需要: 1. 创建窗口...

    VC++源码—透明窗体实例

    - **WinAPI函数**:VC++中实现透明窗体主要依赖于Windows API,如`SetLayeredWindowAttributes`函数,它可以设置窗口的透明度和颜色键。 - **颜色键**:对于部分透明,可以设置一个特定颜色作为透明色,所有该颜色...

    透明窗体 .

    例如,在Windows中,可以使用WinAPI函数`SetLayeredWindowAttributes`来控制窗口的透明度。在.NET框架下,可以使用`Form.TransparencyKey`属性设置颜色键透明,或者使用`Form.Opacity`属性调整窗口的透明度。 3. **...

Global site tag (gtag.js) - Google Analytics