Python 中的 Windows 7 MARGINS 结构

发布于 2024-12-01 08:47:06 字数 628 浏览 1 评论 0原文

我正在尝试在 Python 中使用一些更有趣的 Windows Aero 效果。

DwmExtendFrameIntoClientArea 函数可用于将 Aero 玻璃扩展到客户区域。它需要一个窗口句柄和一个指向 MARGINS 结构的指针。我已经知道如何在 Python 中获取窗口句柄;但是,我不知道如何制作边距结构。

页边距结构,MSDN 文档

这里是到目前为止我所拥有的:

import Tkinter as tk
import string
import ctypes

root = tk.Tk()

handle = string.atoi(root.wm_frame(), 0)

dwm = ctypes.windll.dwmapi

# needs pointertomarginsstruct
dwm.DwmExtendFrameIntoClientArea(handel, pointertomarginsstruct)

root.mainloop()

I'm attempting to get some of the more interesting Windows Aero effects working in Python.

The DwmExtendFrameIntoClientArea function can be used to extend the Aero glass into the client area. It requires a Window handle and a pointer to a MARGINS structure. I already know how to get a window's handle in Python; however, I'm unaware of how to make a margins structure.

MARGINS structure, MSDN Docs

Here is what I have so far:

import Tkinter as tk
import string
import ctypes

root = tk.Tk()

handle = string.atoi(root.wm_frame(), 0)

dwm = ctypes.windll.dwmapi

# needs pointertomarginsstruct
dwm.DwmExtendFrameIntoClientArea(handel, pointertomarginsstruct)

root.mainloop()

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

羁客 2024-12-08 08:47:07

我没有运行 Win7 来测试这一点,但尝试使用 ctypes 定义结构:

class MARGINS(ctypes.Structure):
  _fields_ = [("cxLeftWidth", c_int),
              ("cxRightWidth", c_int),
              ("cyTopHeight", c_int),
              ("cyBottomHeight", c_int)
             ]
margins = MARGINS(1, 2, 1, 1)

dwm.DwmExtendFrameIntoClientArea(handel, ctypes.byref(margins))

I do not have Win7 running to test this but try defining the struct with ctypes:

class MARGINS(ctypes.Structure):
  _fields_ = [("cxLeftWidth", c_int),
              ("cxRightWidth", c_int),
              ("cyTopHeight", c_int),
              ("cyBottomHeight", c_int)
             ]
margins = MARGINS(1, 2, 1, 1)

dwm.DwmExtendFrameIntoClientArea(handel, ctypes.byref(margins))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文