gpt4 book ai didi

python - 在 Windows 中制作一个不可调整大小的窗口

转载 作者:太空狗 更新时间:2023-10-30 02:49:40 25 4
gpt4 key购买 nike

我一直在使用 Windows API 调用,以便我可以获得一些与 Tkinter 一起使用的 native Windows 窗口样式。当我试图阻止窗口调整大小时,我遇到了问题。在映射窗口之前使用 root.resizable(False, False) 产生的效果与 root.overrideredirect(True) 方法没有什么不同;在样式更改后调用它会导致各种疯狂(窗口吓坏了)。我在想可能有一个 Windows 特定的等效于 root.resizable(False, False)。我将如何使它工作?请记住,我有一个 Tkinter 窗口的句柄。

代码:

import Tkinter as tk
import string, win32ui, win32con

def decaption(event):
root = event.widget

# makes a handle to the window
handle = string.atoi(root.wm_frame(), 0)

# changes the style
frame = win32ui.CreateWindowFromHandle(handle)
frame.ModifyStyle(win32con.WS_CAPTION, 0, win32con.SWP_FRAMECHANGED)

root.bind("<Map>", None)

root = tk.Tk()

# changes the style when the window is mapped
root.bind("<Map>", decaption)

root.mainloop()

最佳答案

这里有一些想法:

  • 您可以尝试删除 WS_THICKFRAME 样式:

    frame.ModifyStyle(win32con.WS_THICKFRAME, 0)
  • 另一种方法是处理 WM_GETMINMAXINFO返回窗口的最小和最大宽度和高度的消息。在您的情况下,您将返回当前的宽度和高度。您可以使用 GetWindowRect 获取此信息。 .

关于python - 在 Windows 中制作一个不可调整大小的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7135643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com