我有一个Delphi 2006应用程序,当检测到错误情况时会弹出模态警报对话框。由于在空闲处理程序中检查错误条件,如果恰好显示该对话框,则该对话框可以弹出另一个模式对话框的顶部。在关闭警报对话框后,这可能会导致应用程序主窗体无法获得焦点的用户感到困惑,因为这是另一个模糊的模式对话框。
我想做的是在应用程序打开任何模态对话框时推迟警报弹出窗口。
我尝试了GetLastActivePopup(MyMainWindow.Handle),但似乎一直都返回非零值。
答案 0 :(得分:4)
答案 1 :(得分:3)
试试
if not IsWindowEnabled(MyMainWindow.Handle) then
这也可以解决非Delphi对话框采用模态操作的情况,例如windows.MessageBox(Handle...
。或者显示公共对话框(即OpenDialog)。
答案 2 :(得分:2)
使用AnyPopup()函数
关于GetLastActivePopup()。它可能返回值与
时的hWnd参数相同