请问:
我创建了一个主窗体form1,然后又创建了一个窗体form2,在form2的OnCreate里通过 SetWindowPos( form2.handle, HWND_TOPMOST, 0, 0, 0,0, SWP_NOSIZE + SWP_NOMOVE) 将其变成StayOnTop窗体,(直接改formstyle也试了),然后在主窗体form1中,通过点击按钮通过 winexec(......, SW_RESTORE ) 启动另一个应用程序,但每次启动起来先是在最上层,然后一闪就跑到form1下面去了,没有任何操作,瞬间完成的现象. 请问如何是后起来的应用程序始终至于最上层为激活状态? 因为我不好控制这个后起的应用程序.
我创建了一个主窗体form1,然后又创建了一个窗体form2,在form2的OnCreate里通过 SetWindowPos( form2.handle, HWND_TOPMOST, 0, 0, 0,0, SWP_NOSIZE + SWP_NOMOVE) 将其变成StayOnTop窗体,(直接改formstyle也试了),然后在主窗体form1中,通过点击按钮通过 winexec(......, SW_RESTORE ) 启动另一个应用程序,但每次启动起来先是在最上层,然后一闪就跑到form1下面去了,没有任何操作,瞬间完成的现象. 请问如何是后起来的应用程序始终至于最上层为激活状态? 因为我不好控制这个后起的应用程序.
你最后一个参数的问题。改为SW_SHOW
H:=FindWindow(nil,'Caption');
if H<>0 then
setWindowPos(H,HWND_TOPMOST,0,0,Screen.Width,Screen.Height,SWP_NOSENDCHANGING)
else Application.MessageBox('没有找到窗体!', '提示', MB_OK +
MB_ICONINFORMATION);
楼上的方法只能设置TOPMOST不能解决不同程序切换上下层叠关系的问题.