Delphi - 检测我的应用程序是否有模态对话框
-
26-09-2020 - |
题
我有一个delphi 2006应用程序,在检测到错误条件时弹出模态警报对话框。由于在空闲处理程序中完成错误条件,如果要显示该一个模块对话框,则会弹出对话框。这可能导致用户在提醒对话框关闭后的应用程序主表单未经焦点的令人困惑的情况,因为这些是另一个模糊的模态对话框。
我想做的就是在应用程序有任何模式对话框时推迟警报弹出窗口。
我尝试了getlastactivepopup(mymainwindow.handle),但它似乎一直返回非零。
解决方案
其他提示
只是测试
if not IsWindowEnabled(MyMainWindow.Handle) then
.
当非Delphi对话框采用模态时,这也将根据在windows.MessageBox(Handle...
中进行调查。或者是显示的常见对话框是显示的(即一个顶端rigalog)。
使用 anypopup ()函数
关于 getlastactivepopup ()。它可能返回值与hwnd参数相同,当
时- HWND标识的窗口最近是最活跃的。
- 通过hwnd标识的窗口不拥有任何弹出窗口。
- 窗口由hwnd标识不是顶级窗口,或者它由另一个窗口拥有。
不隶属于 StackOverflow