S
softchina
Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序中有两个窗体(它们是平铺的,互相不遮挡)要求总在其他
程序的上面,我使用了下面4种方法:
1)FormStyle:=FsStayOnTop;
2)API函数:
; ;SetWindowpos(Form1.Handle,HWND_TOPmost,0,0,0,0,swp_nomove or swp_nosize); ;
3)自定义的函数:
Public
; procedure Createparams(Var Params:TCreateParams);override;
...
procedure TFormDrop.Createparams(var Params:TCreateParams);
begin
; Inherited CreateParams(Params);
; With Params do
; begin
; ;EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME
; ;wndParnet:=GetDesktopWindow; ;//关键一行,用SetParent都不行!!
; end;
end;
4)使用AHM等的控件
但程序运行一段时间后,这个窗体还是被其他的窗体覆盖,没办法我只能用Timer
每0.2秒强行将窗体放到最前面:(
请问这是什么原因,该怎么解决呢?(请给出代码最好,谢谢)
程序的上面,我使用了下面4种方法:
1)FormStyle:=FsStayOnTop;
2)API函数:
; ;SetWindowpos(Form1.Handle,HWND_TOPmost,0,0,0,0,swp_nomove or swp_nosize); ;
3)自定义的函数:
Public
; procedure Createparams(Var Params:TCreateParams);override;
...
procedure TFormDrop.Createparams(var Params:TCreateParams);
begin
; Inherited CreateParams(Params);
; With Params do
; begin
; ;EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME
; ;wndParnet:=GetDesktopWindow; ;//关键一行,用SetParent都不行!!
; end;
end;
4)使用AHM等的控件
但程序运行一段时间后,这个窗体还是被其他的窗体覆盖,没办法我只能用Timer
每0.2秒强行将窗体放到最前面:(
请问这是什么原因,该怎么解决呢?(请给出代码最好,谢谢)