我的程序有两个窗体,主窗体用form2.show显示第二个窗体,我想让第二个窗体总在最前,怎么办?
解决方案 »
- ccrun是什么网站?难道是传说中cctv的姊妹网站?
- 系统运行时,出现Database login 对话筐如何解决?
- EPSON ESC/PK控制码是什么意识??
- 一个小问题
- 救命呀,有关delphi与sql连接的问题---------------------在线等待
- 在线等待:如何得到Memo或RichEdit控件中光标位置??
- 我遇到一个很奇怪的现象,请高手解答?(在线等待!!!)
- 怎么回事啊。。各位师兄帮帮我
- 如何實現動態創建Form
- 请问Ado的补丁从哪里下载?
- RAD Studio XE8中关于Windows API 帮助去哪里了?
- 用一个个按钮做个键盘 但是有多个Memo 怎么对他们分别输入
但,这只能在一个EXE中,相对其它窗口而言。
如果,对于其它软件有EXE文件中的窗口,也要置顶。这是发凉改变系统的规范,需要对系统进行操作了,但不提倡如此。
Form2.Show;
SetWindowPos(Form2.Handle,HWND_TOPMOST,Form2.left,Form2.top,Form2.width,Form2.Height,0);
TForm2 = class(TForm)
private
{ Private declarations }
procedure CreateParams(var params: TCreateParams); override;
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.CreateParams(var params: TCreateParams);
begin
inherited;
with Params do
begin
ExStyle :=ExStyle or WS_EX_TOPMOST;
end;
//Form2的父窗口是desktop
Params.WndParent := GetDesktopWindow();
end;
TForm2 = class(TForm)
private
{ Private declarations }
procedure CreateParams(var params: TCreateParams); override;
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.CreateParams(var params: TCreateParams);
begin
inherited;
with Params do
begin
ExStyle :=ExStyle or WS_EX_TOPMOST;
end;
//Form2的父窗口是desktop
Params.WndParent := GetDesktopWindow();
end;
这个在什么时候调用?
TForm2 = class(TForm)
private
{ Private declarations }
procedure CreateParams(var params: TCreateParams); override;
public
{ Public declarations }
end;var
Form2: TForm2;implementation{$R *.dfm}procedure TForm2.CreateParams(var params: TCreateParams);
begin
inherited;
with Params do
begin
ExStyle :=ExStyle or WS_EX_TOPMOST;
end;
//Form2的父窗口是desktop
Params.WndParent := GetDesktopWindow();
end;
这个在什么时候调用?
这个是属于窗体自己生命周期里维护的,不需要显式调用。delphi的帮助里是这么说The CreateWnd method calls CreateParams to initialize the parameters it passes to CreateWindowHandle. Override CreateParams to customize the way a control creates its Windows representation. When overriding CreateParams, always call the inherited method first to set the default values, then make any desired adjustments.
Windows.BringWindowToTop(aForm.handle);
SetWindowPos(aForm.handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE);Win7x64中测试完美通过,不明白你的为什么不行