上下文
我有一个小脚本,通过使用内置消息框(参考:MSDN MessageBox)创建一个消息框来警告用户事件,该消息框是使用ctypes
导入的。此脚本适用于Windows操作系统。
问题:
目前,消息框将显示在所有其他窗口的顶部,但由于它是一个如此小的窗口,用户可以轻松地点击另一个可隐藏消息框的窗口。
我想要什么
我希望将消息框始终放在其他窗口之上。如果无法做到这一点,那么还有办法增加消息框的尺寸吗?
示例代码:
import ctypes
ctypes.windll.user32.MessageBoxW(0, text, title, 0x00010000)
答案 0 :(得分:2)
import ctypes
text = 'Using MB_SYSTEMMODAL'
title = 'Some Title'
ctypes.windll.user32.MessageBoxW(0, text, title, 0x1000)
MB_SYSTEMMODAL
(0x1000)具有WS_EX_TOPMOST
(0x40000)样式。
MessageBoxEx
函数似乎在使用just时效果很好
WS_EX_TOPMOST
(0x40000)样式。
import ctypes
text = 'Using WS_EX_TOPMOST'
title = 'Some Title'
ctypes.windll.user32.MessageBoxExW(0, text, title, 0x40000)
MessageBox函数没有可以更改大小的参数。也许 像tkinter或其他gui工具包这样的替代方案也许能够 更改消息框大小(虽然它可能不是如果它只是一个包装器 对于MessageBoxW)或者你也许可以创建一个自定义窗口来使用。
请参阅http://rextester.com/OZRW13368了解要使用的值。