一个程序App,有两个具有置顶属性的子窗体From1 和 Form2,遇到以下状况:在两台笔记本上(WinXP,IBM R52)运行,From1 和Form2 都能正常置顶(就是都在App 之上)
在一台式机(WinXP,DELL AMD双核)运行,当焦点移到 App 上,Form1 和Form2 都退到 App 后面;
在一台服务器上(Win2003,IBM,2 CPU)运行,当焦点移到App上,Form1 和 Form2 都退到App 后面;请教那位高人见过这种情况,还是只是个人人品问题 ?
在一台式机(WinXP,DELL AMD双核)运行,当焦点移到 App 上,Form1 和Form2 都退到 App 后面;
在一台服务器上(Win2003,IBM,2 CPU)运行,当焦点移到App上,Form1 和 Form2 都退到App 后面;请教那位高人见过这种情况,还是只是个人人品问题 ?
procedure Createparams(var params: TCreateParams);override;
procedure TForm1.FormCreate(Sender: TObject);
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @Rect, 0);
Rect.Top := 100;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);
Left := 0;
Top := 0;
Height := 100;
Width := Screen.Width;
FormStyle := fsStayOnTop;end;procedure TForm1.FormDestroy(Sender: TObject);
begin
Rect.Top := 0;
SystemParametersInfo(SPI_SETWORKAREA, 0, @Rect, 0);end;procedure TForm1.Createparams(var params: TCreateParams);
begin
inherited CreateParams(Params);
with params do
begin
Style:=WS_POPUP;
ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST or WS_EX_NOACTIVATE or WS_EX_WINDOWEDGE;
WndParent := GetWindow(FindWindow('Progman', nil), GW_CHILD);
end;
end;
setwindowpos(application.Handle,hwnd_topmost,0,0,0,0,swp_nomove);
setwindowpos(application.handle,hwnd_notopmost,0,0,0,0,swp_nomove);
setforegroundwindow(application.Handle);
把这三句加到timer里.
好像override窗体类的一个方法可以,忘了