问题
Using Python Win32 extensions, how do you make an arbitrary window on Windows XP transparent?
回答1:
SetLayeredWindowsAttributes example:
import win32gui
import win32con
import winxpgui
import win32api
import subprocess
import time
subprocess.Popen("notepad.exe", shell=True)
time.sleep(1)
hwnd = win32gui.FindWindow(None, "New file - metapad") ## The caption of my empty notepad (MetaPad)
win32gui.SetWindowLong (hwnd, win32con.GWL_EXSTYLE, win32gui.GetWindowLong (hwnd, win32con.GWL_EXSTYLE ) | win32con.WS_EX_LAYERED )
winxpgui.SetLayeredWindowAttributes(hwnd, win32api.RGB(0,0,0), 180, win32con.LWA_ALPHA)
回答2:
You can use the SetLayeredWindowAttributes WIN32 API function for creating transparent windows:
BOOL WINAPI SetLayeredWindowAttributes(
__in HWND hwnd,
__in COLORREF crKey,
__in BYTE bAlpha,
__in DWORD dwFlags
);
Here is a code sample that you can use for wrapping WIN32 API functions for setting transparency.
来源:https://stackoverflow.com/questions/4549213/make-a-window-transparent-using-win32