【发布时间】:2011-05-02 01:41:05
【问题描述】:
我在 GIMP 中注意到,当打开一个对话框时,它不会禁用父窗口。父窗口仍然可以使用,而子窗口浮动在它前面。 我想做同样的事情,但是当我点击我的父窗口时,它会将孩子推到后面,这样父母就会走到前面。
我正在使用 Qt QDialog,但我很乐意编写特定于平台的代码来使其正常工作。
我一直在看这里: http://msdn.microsoft.com/en-us/library/ff700543(v=vs.85).aspx
但似乎没有什么可以做我所追求的。我目前有一个狡猾的解决方案,当我的应用程序获得焦点时,我将窗口设置为HWND_TOPMOST,然后在它失去焦点时禁用它,但它并不理想,因为消息框被推到这些最顶层的窗口后面。
即。
SetWindowPos(winId(), stayOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOACTIVATE);
【问题讨论】: