【问题标题】:How to get the HWND of a Tkinter window on Windows?如何在 Windows 上获取 Tkinter 窗口的 HWND?
【发布时间】:2017-05-27 15:32:58
【问题描述】:
如何在windows上获取python3中Tkinter窗口的HWND?
- 如果可能,我想获取 Tkinter 窗口的本机窗口句柄。
- 我需要窗口的
HWND 或HDC 来执行自定义绘图操作。
有没有办法获取Canvas 的HWND 或任何其他子组件?
有一种方法可以列出当前进程创建的所有窗口。我还可以遍历前面列出的任何窗口的子窗口。这将是问题的丑陋的解决方案。
如果 Tkinter 不直接暴露句柄,请发布任何替代解决方案。
【问题讨论】:
标签:
python-3.x
windows
tkinter
tkinter-canvas
【解决方案1】:
我相信您需要的是 TopLevel 窗口方法。
看看这个link
frame() [#]
返回一个字符串,其中包含对应于窗口最外层父级的系统特定窗口标识符。对于 Unix,这是 X 窗口标识符。对于 Windows,这是将 HWND 强制转换为长整数。
还有关于获取 HWND here.的其他信息
winfo_id() [#]
获取此小部件的系统特定窗口标识符。对于 Unix,这是 X 窗口标识符。对于 Windows,这是将 HWND 强制转换为长整数。
返回:
窗口标识符。
我相信使用上面的winfo_id(),你应该可以得到窗口的HWND。