pywin32 实现透明窗体

这篇博客介绍了如何利用pywin32库在Python中创建具有透明效果的窗体,详细参考了win32的实现方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考win32的实现 http://www.cppblog.com/NobleQiao/archive/2010/01/28/106677.html


#encoding=utf-8
import win32gui
import win32con
import win32api
#MessageBox(None,"hello,world","ex1",MB_YESNO or MB_DEFBUTTON3)

	
	
#娑堟伅澶勭悊鍑芥暟
def wndProc(hwnd, msg, wParam, lParam):
    if msg == win32con.WM_CREATE: print 'message: WM_CREATE'
    if msg == win32con.WM_SIZE: print 'message: WM_SIZE'
    if msg == win32con.WM_PAINT: print 'message: WM_PAINT'
    if msg == win32con.WM_CLOSE: print 'message: WM_CLOSE'
    if msg == win32con.WM_DESTROY:
        print 'message: WM_DESTROY'
        win32gui.PostQuitMessage(0)
    return win32gui.DefWindowProc(hwnd, msg, wParam, lParam)
       
#鎻忚堪绐楀彛绫?
wndClsStruct = win32gui.WNDCLASS()
wndClsStruct.hbrBackground = win32con.COLOR_BTNFACE + 1
wndClsStruct.hCursor = win32gui.LoadCursor(0, win32con.IDC_ARROW)
wndClsStruct.hIcon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)
wndClsStruct.lpszClassName = "MySimpleWindow"
wndClsStruct.lpfnWndProc = wndProc
#娉ㄥ唽绐楀彛绫?

wndClassAtom = win32gui.RegisterClass(wndClsStruct)
#鍒涘缓绐楀彛
hwnd = win32gui.CreateWindow(
            wndClassAtom, 'Spark Test', win32con.WS_OVERLAPPEDWINDOW,
            win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
            win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
            0,0, 0, None)
#鏄剧ず绐楀彛
win32api.SetWindowLong(hwnd,win32con.GWL_EXSTYLE,win32api.GetWindowLong(hwnd,win32con.GWL_EXSTYLE)|win32con.WS_EX_LAYERED)
win32gui.SetLayeredWindowAttributes(hwnd,0,(255*70)/150,win32con.LWA_ALPHA)
win32gui.ShowWindow(hwnd, win32con.SW_SHOWNORMAL)
#鏇存柊绐楀彛
win32gui.UpdateWindow(hwnd)
#娑堟伅寰幆
win32gui.PumpMessages()
	



乱码是由于字体编码的问题,这里就不改了,代码很简单,引用资料里也有些解释,够了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值