SetWindowPos(Form1.Handle, HWND_TOPMiOST, Left, Top, Width, height, SWP_SHOWWINDOW)只對應用程序的主窗口有效,對非窗口沒有效果,在網上看到一種將窗口的父窗口設為桌面的方法可以置頂,但是會在任務管理器的應用程序中出現這個窗體。
出現這種情況可能是Delphi的TApplication的Bug,但是用下面的代碼可以解決:
Application.NormalizeTopMosts;
Form2 := TForm2.Create(Self);
Form2.Show();
然後在Form2的Create事件中
SetWindowPos(Form2.Handle, HWND_TOPMiOST, Left, Top, Width, height, SWP_SHOWWINDOW);
就可以了,至於為什麼還不知道,尚在研究中