繁体   English   中英

浮动/始终在上方对话框

[英]Floating/Always above dialog

我在 GIMP 中注意到,当打开一个对话框时,它不会禁用父 window。 父级 window 仍然可以使用,而子级 window 漂浮在它前面。 我想做同样的事情,但是当我点击我的父母 window 时,它会将孩子推到后面,这样父母就会走到前面。

我正在使用 Qt QDialog,但很高兴使用特定于平台的代码来使其正常工作。

我一直在看这里: http://msdn.microsoft.com/en-us/library/ff700543(v=vs.85).aspx

但似乎没有什么能做我所追求的。 我目前有一个狡猾的解决方案,当我的应用程序接收焦点时,我将HWND_TOPMOST设置为 HWND_TOPMOST,然后在它失去焦点时禁用它,但它并不理想,因为消息框被推到这些最上面的 windows 后面。 IE。

SetWindowPos(winId(), stayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE);

看起来我的对话框中没有正确设置育儿设置。 它需要作为父对话框/主 window 的父级,然后它才能正常工作。

您需要调用setWindowFlags()包括Qt::WindowStaysOnTopHint标志。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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