|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2022/12/1 12:33:55 |
标题: |
一个工程里面怎么只有主窗口可以在最前面? |
浏览:841 |
|
加入我的收藏 |
楼主: |
我把工程的所有窗口都设置为fsStayOnTop,为什么所有的窗口都会给主窗口遮住,其他窗口都出不来了,我想整个工程的所有窗口都可以在其他软件的前面,应该怎么做,而不是只有主窗口可以在最前面,我想主窗口在最前面出来后,它打开的另一个窗口也可以在最前面,现在的问题是,他们都给主窗口挡住了。
----------------------------------------------
- |
作者: |
|
2022/12/1 22:28:20 |
1楼: |
ShowModal
----------------------------------------------
-
|
作者: |
|
2022/12/2 0:20:05 |
2楼: |
ShowModal也到不了前面,也会给主窗口挡住
----------------------------------------------
-
|
作者: |
|
2022/12/2 0:37:06 |
3楼: |
试过调用Windows API没用?
Replace CreateWindow with CreateWindowEx. To turn Always-on-Top on call: SetWindowPos(hWnd, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE); To turn Always-on-Top off call: SetWindowPos(hWnd, HWND_NOTOPMOST, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);
----------------------------------------------
-
|
作者: |
veryp (veryp) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2022/12/2 9:30:47 |
4楼: |
最就是最,top的位置肯定只有一个,你的需求应该是用mdi form或者是其他窗口放在mainform的某个容器里面。
----------------------------------------------
-
|
作者: |
|
2022/12/2 20:05:14 |
5楼: |
找到办法了,主窗口使用: SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
调用非主窗口使用: Form2.Show; Application.NormalizeTopMosts; SetWindowPos(Form2.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
----------------------------------------------
-
|
作者: |
|
2022/12/2 22:24:37 |
6楼: |
换个思路,把所有其它的 Form 都摆放到主窗口里面。也就是设置 Form 的 Parent;
这样,主窗口只要显示出来,你要的窗口也就显示出来了。
----------------------------------------------
-
|
|