怎样永久的将窗口停留在屏幕的最前面?(50分)

  • 主题发起人 主题发起人 yylg
  • 开始时间 开始时间
Y

yylg

Unregistered / Unconfirmed
GUEST, unregistred user!
我曾尝试着在窗口的create事件中使用:<br>setwindowpos(...,.._TOPMOST,x,y,cx,cy, SWB_NOACTIVE or SWB_NOMOVE or SWB_NOSIZE); &nbsp; <br>// 其中使用的宏定义只是描述用,可能不准确,但我在程序中用的是对的.<br>(程序中此窗口使用模态方式显示)<br><br>一开始能够浮动在其他程序窗口之上,并且处于失去焦点(标题栏灰色,但没有被别的程序覆盖); 可是一旦点击此窗口后(窗口获得焦点),再点击其他程序时就失效了,其他程序就会将其覆盖.<br><br>怎么能使窗口无论怎样操作都永远在所有程序的最前面呢? 敬请大家帮忙指点.<br><br><br><br><br>
 
选择form 属性,设一下就可以了<br>Formstyle:的属性设为 fsStayOnTop 一切ok
 
FormStyle 设成fsStayOnTop, 如果要自己的主窗体总在最前面, 不被其他<br>程序覆盖, 可以用:<br>SetWindowPos(Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or<br>&nbsp; &nbsp; &nbsp; SWP_NOSIZE or SWP_NOACTIVATE);<br><br>
 
Public<br>&nbsp; procedure Createparams(Var Params:TCreateParams);override;<br>...<br><br>procedure TFormDrop.Createparams(var Params:TCreateParams);<br>begin<br>&nbsp; Inherited CreateParams(Params);<br>&nbsp; With Params do<br>&nbsp; begin<br>&nbsp; &nbsp;EXStyle:=ExStyle or WS_EX_TOPMOST;<br>&nbsp; &nbsp;wndParnet:=GetDesktopWindow; &nbsp;//关键一行,用SetParent都不行!!<br>&nbsp; end;<br>end;
 
app2001的方法是正确的,我才做过一个此类的小程序。<br>补充一点:再加一个消息处理,始终保持窗体可用。<br>private<br>&nbsp;procedure EnableChanged(var Msg: TMessage); message WM_ENABLE;<br>............<br><br>procedure TForm1.EnableChanged(var Msg: TMessage);<br>begin<br>&nbsp; EnableWindow(handle, true);<br>&nbsp; inherited;<br>end;<br>
 
&nbsp;...<br>&nbsp; public<br>&nbsp; &nbsp; { Public declarations }<br>&nbsp; &nbsp; procedure CreateParams(var Params:TCreateParams);override;<br>&nbsp; end;<br><br>var<br>&nbsp; F_Ts: TF_Ts;<br><br>implementation<br><br>{$R *.dfm}<br><br>procedure TF_Ts.FormCreate(Sender: TObject);<br>begin<br>&nbsp; SetWindowLong(Handle,GWL_EXSTYLE,GetWindowLong(Handle,GWL_EXSTYLE));<br>end;<br><br>procedure TF_Ts.CreateParams(var Params:TCreateParams);<br>begin<br>&nbsp; inherited;<br>&nbsp; Params.WndParent:=0;<br>end;
 
好人真多!谢了!<br>从app2001大侠开始,按先后分配吧,20,20,10
 

Similar threads

S
回复
0
查看
832
SUNSTONE的Delphi笔记
S
S
回复
0
查看
792
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部