Delphi:带有fsStayOnTop的Balloon表单在Win7中不起作用

dur*_*ara 4 forms delphi window balloon topmost

我有一个使用我自己的气球表格的应用程序.这是一种非边界的fsStayOnTop类型.

我用这段代码展示它:

ShowWindow(Handle, SW_SHOWNOACTIVATE);
Visible := True;
Run Code Online (Sandbox Code Playgroud)

今天我意识到,如果我激活另一个应用程序,那么气球不会出现!所以它正在失去它的顶级风格.

环境:Win7/x64 Delphi 6 Professional

我能用它做什么?

谢谢:dd

Hei*_*cht 5

在与顶住形式挣扎时,过去对我有用的是:

Form := TMyForm.Create(Self);
Application.NormalizeTopMosts;
SetWindowPos(Form.Handle, HWND_TOPMOST, 0, 0, 0, 0,
             SWP_NOACTIVATE + SWP_NOMOVE + SWP_NOSIZE);
Form.Show;
Run Code Online (Sandbox Code Playgroud)

试试这个而不是你的ShowWindow电话.它保持在所有窗口之上(你真的想要这个吗?).它也有点像hacky,因为它省略了RestoreTopMosts文档说我们应该调用的调用(因此应用程序中的其他keep -on-top窗口将受到影响).所以可能有更好的解决方案.