怎样实现程序一直在前? ( 积分: 100 )

  • 主题发起人 主题发起人 lxm7805
  • 开始时间 开始时间
L

lxm7805

Unregistered / Unconfirmed
GUEST, unregistred user!
想在启动时程序出来的所有窗体一直置于最前端,其它程序不能显示在窗体之外,直到程序最小化至托盘区,请问怎么实现<br><br>共400分奉上
 
想在启动时程序出来的所有窗体一直置于最前端,其它程序不能显示在窗体之外,直到程序最小化至托盘区,请问怎么实现<br><br>共400分奉上
 
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; EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME<br> &nbsp; wndParnet:=GetDesktopWindow; &nbsp;//关键一行,用SetParent都不行!!<br> &nbsp;end;<br>end;
 
不太明白,‘其它程序’指的是另外单独的应用程式还是主程式的子窗体?
 
最简单的就是MDI窗体了吧?<br>不过真的有这个需要吗?<br>用showmodal方式show窗体就可以了啊.
 
其它程序当然是别的应用程序,比如MSN,QQ等自启动软件,所做的程序也是自启动且最大化的,想置于这些软件之前,等用户认证通过后才可使用MSN,QQ等,现在主程序可以用setwindowpos实现置于最前端,但是要在程序最小化至托盘区之前的每一个产生的窗体都要置于最前端,用createparam时,如果wndparent=前一窗体.handle,则不会置顶,如果加上setwindowpos(handle,hwnd_topmost,left,top,width,height,swp_showwindow)则有的showmodal产生的窗体会无法控制。什么原因???小弟水平有限啊
 
非常简单,只要将窗体的 FormStyle 属性设为 fsStayOnTop 即可。
 
to helloqiner<br>要是这样简单早就做出来了<br>
 
说的详细些吧:<br>我的程序需要在机器启动时自动运行登陆系统,以保护系统安全,但是qq、MSN如果选择总在最前端功能时,它们总是能够在最上层.我用以下代码也干不掉,总落在后面<br>1.procedure TloginForm.Createparams(var Params: TCreateParams);<br>begin<br> &nbsp;Inherited CreateParams(Params);<br> &nbsp;With Params do &nbsp;begin<br> &nbsp; &nbsp;EXStyle:=ExStyle or WS_EX_TOPMOST OR WS_EX_ACCEPTFILES or WS_DLGFRAME;<br> &nbsp; &nbsp;WndParent:=GetDesktopWindow;<br> &nbsp;end;<br>end;<br>2.OnCreate中:<br>SetWindowPos(Handle,HWND_TOPMOST,Self.Left,Self.Top,Self.Width,Self.Height,SWP_SHOWWINDOW)<br><br>这两中方法,但是qq、MSN登录窗口仍然同样在最上层,点击QQ后,仍然能用qq,不知道有什么好办法?<br>如果这个实现,在登录窗口后的messagebox窗体时,这些东西又会出来,怎么屏蔽呢??<br>
 
因为QQ和MSN的也是置顶窗口,你们属于同一级别的TOPMOST,所以你需要这样:1 找到其它应用程序的窗口句柄;2 &nbsp;用SetWindowPos改变他们的置顶状态并最小化,注意保留他们的原始属性,以便恢复。<br><br>还有一种办法就是,因为你不是保护系统安全的吗?就在你的程序最先运行,然后不让他们运行,呵呵,有点霸道了。
 
to风林坡:<br>你说得怎么实现呢?<br>第一种:设个定时器,遍历整个控件句柄,然后再隐藏?这个怎么实现?<br>还是QQ句柄就为#37200这个???<br>第二个怎么搞?
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
830
DelphiTeacher的专栏
D
后退
顶部