• 1.摘要
  • 2.基本信息
  • 3.声明
  • 3.1.VB申明:
  • 3.2.C++申明:
  • 4.创建透明窗口
  • 5.VC6.0调用
  • 6.C++ 宏值定义

SetLayeredWindowAttributes

此函数用于设置分层窗口透明度,常和UpdateLayeredWindow函数结合使用。

基本信息

  • 外文名

    SetLayeredWindowAttributes

  • 用于

    设置分层窗口透明度

  • 类型

    VB申明C++申明

  • 结合

    UpdateLayeredWindow 函数

声明

VB申明:

Public Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

C++申明:

BOOL SetLayeredWindowAttributes(

HWND hwnd, // 指定分层窗口句柄

COLORREF crKey, // 指定需要透明的背景颜色值,可用RGB()宏

BYTE bAlpha, // 设置透明度,0表示完全透明,255表示不透明

DWORD dwFlags // 透明方式

);

其中,dwFlags参数可取以下值:

LWA_ALPHA时:crKey参数无效,bAlpha参数有效;

LWA_COLORKEY: 窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。

LWA_ALPHA | LWA_COLORKEY:crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。

创建透明窗口

要使使 窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性,方法可以在CreateWindowEx时指定,也可以SetWindowLong动态设置。如下代码可设置分层窗口:

LONG t = GetWindowLong(m_hWnd, GWL_EXSTYLE);

t |= WS_EX_LAYERED;

SetWindowLong(m_hWnd, GWL_EXSTYLE, t);