[杂谈]系统对话框(如浏览目录)被隐藏到主窗体后面造成程序无法操作的临时处理方式

Posted 我的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[杂谈]系统对话框(如浏览目录)被隐藏到主窗体后面造成程序无法操作的临时处理方式相关的知识,希望对你有一定的参考价值。

http://blog.qdac.cc/?p=4808

说实在话,我被这个问题困扰不知道多少年了,具体的原因我实际上到现在为止仍未找到。不过这里提供一个临时的解决办法,使用定时器来检查当前进程的活动窗口与 Screen.ActiveForm 是否一致,如果不一致,则检查 Screen.ActiveForm 是否被禁用了(注意不要看它的 Enabled,而是调用 API),如果被禁用了,则说明弹出的对话框不是 Delphi 的 Form,我们调用 SetWindowPos 来其它调整到最前面显示就可以,定时器的处理代码参考如下:

这个暂时是治标的办法,至于治本的办法,由于单独建立 Demo 测试许多时候都无法重现,所以暂时放弃吧,不得已……

以上是关于[杂谈]系统对话框(如浏览目录)被隐藏到主窗体后面造成程序无法操作的临时处理方式的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform 登陆窗体跳转到主窗体,登陆窗体隐藏

模型对话框移动到主窗口后面的 Qt 错误

如何让WPF弹出窗口不被隐藏在主应用程序后面?

Bootstrap模态对话框怎么隐藏?

win10 双屏 资源管理器 CPU占用异常

delphi 托盘图标 主窗体就隐藏,跳出一个窗体就缩小的