DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pixelcraft
今日帖子: 55
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2022/12/1 12:33:55
标题:
一个工程里面怎么只有主窗口可以在最前面? 浏览:841
加入我的收藏
楼主: 我把工程的所有窗口都设置为fsStayOnTop,为什么所有的窗口都会给主窗口遮住,其他窗口都出不来了,我想整个工程的所有窗口都可以在其他软件的前面,应该怎么做,而不是只有主窗口可以在最前面,我想主窗口在最前面出来后,它打开的另一个窗口也可以在最前面,现在的问题是,他们都给主窗口挡住了。
----------------------------------------------
-
作者:
男 zhahongyi (如风) ★☆☆☆☆ -
普通会员
2022/12/1 22:28:20
1楼: ShowModal
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
2022/12/2 0:20:05
2楼: ShowModal也到不了前面,也会给主窗口挡住
----------------------------------------------
-
作者:
男 newbuyer (newbuyer) ★☆☆☆☆ -
普通会员
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的某个容器里面。
----------------------------------------------
-
作者:
男 huangxing (gx) ★☆☆☆☆ -
盒子活跃会员
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);
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2022/12/2 22:24:37
6楼: 换个思路,把所有其它的 Form 都摆放到主窗口里面。也就是设置 Form 的 Parent;

这样,主窗口只要显示出来,你要的窗口也就显示出来了。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行191.4063毫秒 RSS