如何将 wx.Frame 保持在顶部,不仅是 parent 框架而且所有其他 child 框架 parent 打开?

How do I keep wx.Frame on top not only it's parent frame but all other child frames parent opens?

我可以使用以下样式在 parent 上保留一个框架:

wx.FRAME_FLOAT_ON_PARENT

但是如果这个 parent 打开其他 child windows.

它就会失去焦点

有没有办法让它在这个给定应用程序的所有 windows 之上? 我不能使用 wx.STAY_ON_TOP 因为当我 Alt-Tab 到其他进程时它总是在最前面。

最简单的解决方案(没有看到代码)可能是

1.将frame绑定到EVT_KILL_FOCUS,然后从绑定的事件中调用frame.SetFocus()。缺点是在该框架上有多个小部件会使事情变得复杂,因为您必须绑定到每个小部件。要获取具有焦点的框架,请调用 wx.GetActiveWindow().

2.绑定另一个windows到EVT_ACTIVATE然后调用frame.SetFocus()重新激活正确的框架。

3. 尝试在您显示的其他帧上调用 frame.ShowWithoutActivating 以防止它们接收焦点。

4. 以上的一些组合