关于“窗体总在最上”的问题(100分)

  • 主题发起人 主题发起人 amidiot
  • 开始时间 开始时间
A

amidiot

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中,我把主窗体的frmstyle属性改为fsStayOnTop
运行时却不起作用
只有在运行期间动态的改变此属性才管用
这是为什么??
 
你必须用到参数才可以呀。这个样子不行的。
public
procedure Createparams(var Params: TCreateParams);override;


procedure Tfrmmain.Createparams(var Params:TCreateParams);
begin
Inherited CreateParams(Params);
With Params do
begin
EXStyle:=WS_EX_TOPMOST OR WS_EX_ACCEPTFILES ;
//ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME;
wndParent:=GetDesktopWindow; //关键一行,用SetParent都不行!!
end;
end;
 
这样可以吧
procedure SetupStayOnTop(Form: HWND; Bool: Boolean);
begin
if Bool then
SetWindowPos(Form, HWND_TOPMOST, 0, 0, 0, 0,
(SWP_NOMOVE or SWP_NOSIZE))
else
SetWindowPos(Form, Hwnd_Notopmost, 0, 0, 0, 0,
(SWP_NOMOVE or SWP_NOSIZE));
end;
 
多人接受答案了。
 
后退
顶部