6 out of 10 rated this helpful - Rate this topic

SetLayeredWindowAttributes function

Applies to: desktop apps only

Sets the opacity and transparency color key of a layered window.

Syntax

BOOL WINAPI SetLayeredWindowAttributes(
  __in  HWND hwnd,
  __in  COLORREF crKey,
  __in  BYTE bAlpha,
  __in  DWORD dwFlags
);

Parameters

hwnd [in]

Type: HWND

A handle to the layered window. A layered window is created by specifying WS_EX_LAYERED when creating the window with the CreateWindowEx function or by setting WS_EX_LAYERED via SetWindowLong after the window has been created.

Windows 8:  The WS_EX_LAYERED style is supported for top-level windows and child windows. Previous Windows versions support WS_EX_LAYERED only for top-level windows.
crKey [in]

Type: COLORREF

A COLORREF structure that specifies the transparency color key to be used when composing the layered window. All pixels painted by the window in this color will be transparent. To generate a COLORREF, use the RGB macro.

bAlpha [in]

Type: BYTE

Alpha value used to describe the opacity of the layered window. Similar to the SourceConstantAlpha member of the BLENDFUNCTION structure. When bAlpha is 0, the window is completely transparent. When bAlpha is 255, the window is opaque.

dwFlags [in]

Type: DWORD

An action to be taken. This parameter can be one or more of the following values.

ValueMeaning
LWA_ALPHA
0x00000002

Use bAlpha to determine the opacity of the layered window.

LWA_COLORKEY
0x00000001

Use crKey as the transparency color.

 

Return value

Type:

Type: BOOL

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

Note that once SetLayeredWindowAttributes has been called for a layered window, subsequent UpdateLayeredWindow calls will fail until the layering style bit is cleared and set again.

For more information, see Using Layered Windows.

Requirements

Minimum supported client

Windows 2000 Professional

Minimum supported server

Windows 2000 Server

Header

Winuser.h (include Windows.h)

Library

User32.lib

DLL

User32.dll

See also

Reference
CreateWindowEx
SetWindowLong
UpdateLayeredWindow
Conceptual
Windows
Using Windows
Other Resources
AlphaBlend
TransparentBlt
COLORREF
RGB

 

 

Send comments about this topic to Microsoft

Build date: 2/3/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Don't use RGB(255, 0, 255) as crKey
If you pass RGB(255, 0, 255) as the color key you won't be able to click on the window.
LWA_ALPHA combined with LWA_COLORKEY
The thing that is not obvious from this documentation is the behavior of a window that uses both LWA_ALPHA and LWA_COLORKEY together. When used together, everything in the window that matches the crKey color will be completely transparent. The *rest* of the window will be alpha-blended using bAlpha.