Delphi 窗体置顶(总在最前面)

代码如下:
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width,Height,SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
只要改变相应参数还可实现其他效果,如隐藏、固定不动等。
 
下面我举一个复选框的例子:
procedure TForm1.checkBox1Click(Sender: TObject);
begin
if checkBox1.Checked then
    SetWindowPos(Form1.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
else
    SetWindowPos(Form1.Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);
end;
 此外,如果默认启动后窗体置顶,还需要在onCreate事件中加入 SetWindowPos(Form1.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE)
不建议使用 FormStyle:=fsStayOnTop; 这种方式。

 

 

posted @ 2022-05-27 09:26  一曲轻扬  阅读(1644)  评论(0)    收藏  举报