失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 窗口桌面置顶(主窗口和子窗口)

窗口桌面置顶(主窗口和子窗口)

时间:2023-09-03 14:56:47

相关推荐

窗口桌面置顶(主窗口和子窗口)

在Delphi中,非主窗体如何置顶

SetWindowPos(Form1.Handle, HWND_TOPMIOST, Left, Top, Width, height, SWP_SHOWWINDOW)可以将窗口放在所有窗口的最前面,但是这仅对一个应用程序的主窗口有效,非主窗口只能在这个应用程序的内部被置前,但是其他应用程序的窗口仍然会盖住他。

解决方法是将Form1的父窗口设为桌面,如:

procedure TForm1.CreateParams(var Params: TCreateParams);

begin

inherited;

with Params do

begin

WndParent := GetdesktopWindow();

end;

end;

但是这样会在进程管理器中的应用程序中多出一个Form1,怎样才能不让出现这个Form1了,其实解决方法很简单的,只需要将Form1的caption属性设为空就可以:Form1.Caption := '';

还有另外一种可以不用将Form1的父窗口设为桌面也可以置前,那就是在窗体创建置前调用

Application.NormalizeTopMosts;

然后再调用SetWindowPos也可以实现将窗口置前的效果

如果觉得《窗口桌面置顶(主窗口和子窗口)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。