繁体   English   中英

Python如何保持MessageboxW在所有其他窗口之上?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM