一段使窗口透明的代码(仅适用于2000)

发表于:2007-07-01来源:作者:点击数: 标签:
BOOL SetTransparent(HWND hWnd) { HMODULE hModule =GetModuleHandle(User32.DLL); if(hModule == NULL) { return FALSE; } typedef BOOL (WINAPI* SETLAYEREDWND)( HWND, COLORREF, BYTE, DWORD); SETLAYEREDWND SetLayeredWindowPtr = NULL; SetLayeredWi


BOOL SetTransparent(HWND hWnd)
{
HMODULE hModule =GetModuleHandle("User32.DLL");
if(hModule == NULL)
{
return FALSE;
}

typedef BOOL (WINAPI* SETLAYEREDWND)( HWND, COLORREF, BYTE, DWORD);
SETLAYEREDWND SetLayeredWindowPtr = NULL;
SetLayeredWindowPtr = (SETLAYEREDWND)GetProcAddress(hModule, "SetLayeredWindowAttributes");
if(SetLayeredWindowPtr)
{
LONG lStyle = GetWindowLong(hWnd, GWL_EXSTYLE) | 0x00080000;

SetWindowLong( hWnd, GWL_EXSTYLE, lStyle);

SetLayeredWindowPtr( hWnd,
RGB(0, 0, 0),
BYTE((255 * 70) / 100),
2);
}
}

原文转自:http://www.ltesting.net