Python ctypes AnimateWindow не работает ⇐ Python
-
Гость
Python ctypes AnimateWindow не работает
Я пытаюсь создать окно tkinter без строки заголовка по умолчанию, со значком, видимым на панели задач и анимируемым при сворачивании и развертывании. Проблема в том, что AnimateWindow возвращает нулевое значение.
из импорта tkinter * импорт типов из ctypes.wintypes импортировать DWORD SW_HIDE = 0 SW_SHOWNORMAL = 1 АВ_АКТИВАТ = 0x00020000 AW_HIDE = 0x00010000 GWL_EXSTYLE=-20 WS_EX_APPWINDOW=0x00040000 WS_EX_TOOLWINDOW=0x00000080 тк = Тк() tk.geometry('1000x800+300+100') tk.overrideredirect(1) tk.update_idletasks() tk.withdraw() hwnd = ctypes.windll.user32.GetParent(tk.winfo_id()) стиль = ctypes.windll.user32.GetWindowLongW(hwnd, GWL_EXSTYLE) стиль = стиль & ~WS_EX_TOOLWINDOW стиль = стиль | WS_EX_APPWINDOW ctypes.windll.user32.SetWindowLongW(hwnd, GWL_EXSTYLE, стиль) dwTime = DWORD(200) dwFlags = DWORD(AW_ACTIVATE) если нет ctypes.windll.user32.AnimateWindow(hwnd, dwTime, dwFlags): ошибка = ctypes.GetLastError() print('не удалось', ошибка) ctypes.windll.user32.ShowWindow(hwnd, SW_SHOWNORMAL) tk.mainloop() Я ожидаю примера выполнения AnimateWindow(). Пояснения, конечно, приветствуются.
Я пытаюсь создать окно tkinter без строки заголовка по умолчанию, со значком, видимым на панели задач и анимируемым при сворачивании и развертывании. Проблема в том, что AnimateWindow возвращает нулевое значение.
из импорта tkinter * импорт типов из ctypes.wintypes импортировать DWORD SW_HIDE = 0 SW_SHOWNORMAL = 1 АВ_АКТИВАТ = 0x00020000 AW_HIDE = 0x00010000 GWL_EXSTYLE=-20 WS_EX_APPWINDOW=0x00040000 WS_EX_TOOLWINDOW=0x00000080 тк = Тк() tk.geometry('1000x800+300+100') tk.overrideredirect(1) tk.update_idletasks() tk.withdraw() hwnd = ctypes.windll.user32.GetParent(tk.winfo_id()) стиль = ctypes.windll.user32.GetWindowLongW(hwnd, GWL_EXSTYLE) стиль = стиль & ~WS_EX_TOOLWINDOW стиль = стиль | WS_EX_APPWINDOW ctypes.windll.user32.SetWindowLongW(hwnd, GWL_EXSTYLE, стиль) dwTime = DWORD(200) dwFlags = DWORD(AW_ACTIVATE) если нет ctypes.windll.user32.AnimateWindow(hwnd, dwTime, dwFlags): ошибка = ctypes.GetLastError() print('не удалось', ошибка) ctypes.windll.user32.ShowWindow(hwnd, SW_SHOWNORMAL) tk.mainloop() Я ожидаю примера выполнения AnimateWindow(). Пояснения, конечно, приветствуются.