我正在尝试制作一个窗口,在从我的应用程序切换到它启动的浏览器时显示一些信息。结果,目前尝试:
- 表单样式:fsStayOnTop;
- 添加了 WS_EX_TOPMOST 样式的 CreateParams 重载;
- 在 OnShow() 中使用 HWND_TOPMOST 参数并通过定时器调用 SetWindowPos;
在任何情况下,通过 ShellExecute() 命令调用的 Chrome 都会与此窗口重叠......以及其他应用程序。TopMost 仅适用于我的应用程序中的其他表单。
也许有人已经经历过这种行为并且知道如何解决这个问题?
PS:无边框窗口(BorderStyle = []),Delphi XE2,Windows 10 build 14393;
总的来说,事实证明,Delphi 由于某种原因在应用程序停用时从其所有窗体中删除了“在所有窗口之上”标志,并在应用程序激活时再次设置它。
对此,通过Application.OnDeactivate事件处理程序解决了上述问题: