欢迎访问宙启技术站
智能推送

win32gui模块中设置窗口样式和边框的方法

发布时间:2023-12-27 19:55:24

win32gui模块是Python的一个标准库,用于操作Windows系统的图形用户界面。它提供了一些方法来设置窗口的样式和边框。

1. 设置窗口样式:使用SetWindowLongPtr函数可以设置窗口的样式。

import win32gui

hwnd = win32gui.FindWindow(None, "窗口标题")
style = win32gui.GetWindowLongPtr(hwnd, win32con.GWL_STYLE)
#设置窗口为无边框样式
style = style & ~(win32con.WS_CAPTION | win32con.WS_THICKFRAME | win32con.WS_MINIMIZEBOX | win32con.WS_MAXIMIZEBOX)
win32gui.SetWindowLongPtr(hwnd, win32con.GWL_STYLE, style)
#刷新窗口
win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, 0, 0, 0, 0, win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_NOZORDER | win32con.SWP_FRAMECHANGED)

上面的例子中,首先使用FindWindow函数找到了指定标题的窗口句柄。然后使用GetWindowLongPtr函数获取了窗口的当前样式。接着设置了窗口的样式为无边框样式,这里使用了位运算符和~操作符来实现。最后通过SetWindowLongPtr函数将设置的样式应用到窗口上,并调用SetWindowPos函数刷新窗口。

2. 设置窗口边框:使用SetWindowLongPtr函数可以设置窗口的边框样式。

import win32gui

hwnd = win32gui.FindWindow(None, "窗口标题")
style = win32gui.GetWindowLongPtr(hwnd, win32con.GWL_STYLE)
exstyle = win32gui.GetWindowLongPtr(hwnd, win32con.GWL_EXSTYLE)
#设置窗口为无边框样式
style = style & ~(win32con.WS_CAPTION | win32con.WS_THICKFRAME | win32con.WS_MINIMIZEBOX | win32con.WS_MAXIMIZEBOX)
#设置窗口为无边框边界样式
exstyle = exstyle & ~(win32con.WS_EX_DLGMODALFRAME | win32con.WS_EX_CLIENTEDGE | win32con.WS_EX_STATICEDGE)
win32gui.SetWindowLongPtr(hwnd, win32con.GWL_STYLE, style)
win32gui.SetWindowLongPtr(hwnd, win32con.GWL_EXSTYLE, exstyle)
#刷新窗口
win32gui.SetWindowPos(hwnd, win32con.HWND_TOP, 0, 0, 0, 0, win32con.SWP_NOMOVE | win32con.SWP_NOSIZE | win32con.SWP_NOZORDER | win32con.SWP_FRAMECHANGED)

上面的例子中,首先使用FindWindow函数找到了指定标题的窗口句柄。然后使用GetWindowLongPtr函数获取窗口的当前样式和扩展样式。接着设置了窗口的样式和扩展样式为无边框样式,这里同样使用了位运算符和~操作符来实现。最后通过SetWindowLongPtr函数将设置的样式和扩展样式应用到窗口上,并调用SetWindowPos函数刷新窗口。

总结:通过win32gui模块的SetWindowLongPtr函数可以设置窗口的样式和边框样式,然后通过SetWindowPos函数刷新窗口。使用位运算符和~操作符可以方便地设置指定的样式。以上是关于win32gui模块中设置窗口样式和边框的方法带使用例子的简要介绍。