ModifyStyleEx(0, WS_EX_LAYERED);//修改窗口属性为WS_EX_LAYERED
SetLayeredWindowAttributes(0, 192, LWA_ALPHA); //实现透明效果
或者 vs2003之前加xi
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hinst=LoadLibrary("User32.dll");
if(hinst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun=NULL;
fun=(MYFUNC)GetProcAddress(hinst,"SetLayeredWindowAttributes");
if(fun)
{
if(m_bTransparent==FALSE)
{
fun(this->GetSafeHwnd(),0,100,2);
m_bTransparent=TRUE;
}
else
{
fun(this->GetSafeHwnd(),0,0,2);
m_bTransparent=FALSE;
}
FreeLibrary(hinst);
}
}
SetLayeredWindowAttributes Function
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.
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 bAlphais 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.
Value Meaning -
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: 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.