咋就没人知道呢??? ( 积分: 100 )

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

lxm7805

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么做一个登陆窗体置于最前端,登录成功后,提示信息窗体置于最前端,不能让别的程序出现在此窗体外
 
怎么做一个登陆窗体置于最前端,登录成功后,提示信息窗体置于最前端,不能让别的程序出现在此窗体外
 
1.窗体置最前面:设窗体Style属性为fsStayOnTop就行了。<br>2.提示信息窗体置于最前端,加下面语句就行了:<br> &nbsp;Application.NormalizeTopMosts; //将窗体暂时设为正常;<br> &nbsp;showmessage('abc');<br> &nbsp;Application.RestoreTopMosts; &nbsp;//恢复窗体为最前端;<br>3.设其他窗体Style属性为fsMDIChild。
 
form有一个属性:formstyle :设置为:fsstayontop,然后就是自己编程实现了,或者在程序里更改此值.
 
SetWindowPos(ChatFrm.Handle,Hwnd_Topmost,0,0,0,0,(SWP_NOMOVE or SWP_NOSIZE));
 
都试了,不行,是这样的,比如MSN,QQ等自启动软件,所做的程序也是自启动且最大化的,想置于这些软件之前,等用户认证通过后才可使用MSN,QQ等,现在主程序可以用setwindowpos实现置于最前端,但是要在程序最小化至托盘区之前的每一个产生的窗体都要置于最前端,用createparam时,如果wndparent=前一窗体.handle,则此时窗体不会置于最前端,如果加上setwindowpos(handle,hwnd_topmost,left,top,width,height,swp_showwindow)则有的showmodal产生的窗体会无法控制。什么原因???小弟水平有限啊
 
你是想用自己的窗体挡住别人的吗?干脆用全屏的DirextX好了。
 
不能这样的
 
说的详细些吧:<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>
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
890
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
842
DelphiTeacher的专栏
D
后退
顶部