[英]Python How to keep MessageboxW on top of all other windows?
语境:
我有一个小脚本,它通过使用Windows内置消息框(参考: MSDN MessageBox )创建一个消息框来警告用户事件,该消息框是使用ctypes
导入的。 该脚本适用于Windows OS。
问题:
当前,该消息框将显示在所有其他窗口的顶部,但是由于它是一个很小的窗口,因此用户可以轻松地单击另一个可以隐藏该消息框的窗口。
我想要的是
我想使消息框始终位于其他窗口的顶部。 如果无法做到这一点,那么是否有办法增加消息框的尺寸?
示例代码:
import ctypes
ctypes.windll.user32.MessageBoxW(0, text, title, 0x00010000)
import ctypes
text = 'Using MB_SYSTEMMODAL'
title = 'Some Title'
ctypes.windll.user32.MessageBoxW(0, text, title, 0x1000)
MB_SYSTEMMODAL
(0x1000)具有WS_EX_TOPMOST
(0x40000)样式。
仅使用WS_EX_TOPMOST
(0x40000)样式, MessageBoxEx
函数似乎可以很好地工作。
import ctypes
text = 'Using WS_EX_TOPMOST'
title = 'Some Title'
ctypes.windll.user32.MessageBoxExW(0, text, title, 0x40000)
MessageBox函数没有用于更改大小的参数。 也许像tkinter这样的替代品或其他gui工具包可能能够更改消息框的大小(尽管如果仅仅是MessageBoxW的包装,则可能无法更改),或者您可能会创建一个自定义窗口来使用。
请参阅MSDN MessageBox函数以获取要使用的值。
另请参见MSDN MessageBoxEx函数 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.