我有一个使用我自己的气球形式的应用程序。
这是一个无边界的 fsStayOnTop 类型的表单。
我用这个代码展示它:
ShowWindow(Handle, SW_SHOWNOACTIVATE);
Visible := True;
今天我意识到如果我激活另一个应用程序,气球就不会出现!
所以它正在失去它的顶级风格。
环境:
Win7/x64
德尔福 6 专业版
我可以用它做什么?
谢谢:
日
最佳答案
过去在努力保持最佳状态时对我有用的方法:
Form := TMyForm.Create(Self);
Application.NormalizeTopMosts;
SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);
Form.Show;
试试这个而不是你的
ShowWindow
调用。它位于所有窗口的顶部(你真的想要这个吗?)。它也感觉有点 hacky,因为它省略了文档说我们应该调用的 RestoreTopMosts
调用(因此应用程序中的其他停留在顶部的窗口会受到影响)。所以可能有更好的解决方案。关于forms - Delphi:带有 fsStayOnTop 的气球窗体在 Win7 中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7900427/