Структура Windows 7 MARGINS в Python - PullRequest
1 голос
/ 26 августа 2011

Я пытаюсь заставить некоторые более интересные эффекты Windows Aero работать в Python.

Функция DwmExtendFrameIntoClientArea может использоваться для расширения стекла Aero в клиентской области.Требуется дескриптор окна и указатель на структуру MARGINS .Я уже знаю, как получить дескриптор окна в Python;Тем не менее, я не знаю, как сделать структуру полей.

структура MARGINS, документы 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()

1 Ответ

4 голосов
/ 27 августа 2011

У меня не запущена 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))
...