http://blog.163.com/wang_qiming/blog/static/46437185200912025843204/
在Delphi中,非主窗体如何置顶
2009-02-20 14:58:43| 分类: 小知识 | 标签: |举报 |字号大中小 订阅
在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也可以实现将窗口置前的效果
解决方法是将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也可以实现将窗口置前的效果
delphi lazarus opengl
网页操作自动化, 图像分析破解,游戏开发