[DllImport("user32.dll")]
static extern bool SetLayeredWindowAttributes(IntPtr hwnd, uint crKey,
byte bAlpha, uint dwFlags);
Public Declare Auto Function SetLayeredWindowAttributes Lib "User32.Dll" _
(ByVal hWnd As IntPtr, ByVal crKey As Integer, ByVal Alpha As Byte, ByVal dwFlags As Integer) As Boolean
Function Long SetLayeredWindowAttributes(long hWnd, Long crKey , char /*Byte*/ bAlpha , Long dwFlags) &
Library "user32" alias for "SetLayeredWindowAttributes;Ansi"
None.
This method may only be called on Windows 2000 and above.
public const int GWL_EXSTYLE = -20;
public const int WS_EX_LAYERED = 0x80000;
public const int LWA_ALPHA = 0x2;
public const int LWA_COLORKEY = 0x1;
//set the window style to alpha appearance
private void button4_Click(object sender, EventArgs e)
{
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) ^ WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, 128, LWA_ALPHA);
}
// Tip submitted by Olivier Citeau (ociteau@yahoo.fr)
// I just combined it with the numeric module from Simon Harris (simon@addease.com.au)
//Open event of your window
Constant long LWA_COLORKEY = 1, LWA_ALPHA = 2
Constant long GWL_EXSTYLE = - 20
Constant long WS_EX_LAYERED = 524288 //2^19
Long ll_Ret, ll_handle
n_cst_numerical lnc_N
// Set the window style to 'Layered'
ll_handle = Handle (this)
ll_Ret = GetWindowLong(ll_handle, GWL_EXSTYLE)
//ll_Ret = ll_Ret Or WS_EX_LAYERED
ll_Ret = lnc_N.of_bitwiseor( ll_Ret, WS_EX_LAYERED)
SetWindowLong (ll_handle, GWL_EXSTYLE, ll_Ret)
// Set the opacity of the layered window to 128
SetLayeredWindowAttributes (ll_handle, 0, char(128),LWA_ALPHA)
//Note that if you set opacity to 0, your window will be
//invisible. With 255, it will be a "normal" window.
When setting Layered Window Attributes for window transparency, you can set the .Opacity property of your form instead.