如何让窗口显示在最前端???(20分)

  • 主题发起人 主题发起人 doglive
  • 开始时间 开始时间
D

doglive

Unregistered / Unconfirmed
GUEST, unregistred user!
如何让窗口显示在最前端??

不是用showmadol,,要显示在所有窗口的前端,(包括其他的应用程序)
 
BringToFront
 
将窗体自己置前:
SetForegroundWindow( Handle );

MDI子窗体的置前:
DefMDIChildProc( ChildForm.Handle, WM_SETFOCUS, 0, 0 );

将非MDI子窗体置前:
SetForegroundWindow( TheForm.Handle );
 
不行啊,还是可以被其他窗口盖住
 
form1.FormStyle:= fsStayOnTop;
 
属性当中可以直接设
 
不行,,,你们有没有试过?
 
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
 
在主窗体的formcreate事件加载即可!
 
不行啊,可能我没有说清楚,我是要把窗口放在所有窗口之上,包括其他应用程序

如: 我打开我的电脑,,该窗口不会被浏览器盖住
 
行的,至少我试了是行的:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
end;

end.
 
刚刚我也试过了,,,这种情况适合与主窗口,,但是非主窗口就不行了

我需要的是要一个非主窗口显示在最前端,,,,主窗口没有必要
 
这个,基本上很难
 
SetWindowPos
 
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
form1.FormStyle:= fsStayOnTop;
这两个都可以,我试啦
 
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
这个可以
fsStayOnTop 也可以亚
 
后退
顶部