博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何实现点击激活窗体同时窗体不跑到最前覆盖其他窗体
阅读量:5341 次
发布时间:2019-06-15

本文共 560 字,大约阅读时间需要 1 分钟。

    正常情况下,点击一个窗体,窗体就会被激活,激活后窗体就跑到最前面,将其他窗体覆盖掉,有时候我们只想激活窗体,但又不想让窗体跑到最前面,改如何实现呢?

   在delphi中实现起来会比较简单,使用 Form的PopupParent属性即可;设置后Form会始终在PopupParent的前面,即使激活PopupParent也不会改变位置顺序。

   另外,PopupParent属性可以解决窗体跑到最后面的问题:

    有时候我们使用ShowModal显示窗体时,窗体会跑到后面去看不到,具体原因不知,可能窗体顺序设置时和激活消息冲突造成的,但这种情况会让用户以为程序没反应,而且也确实不管用户如何点击都没反应,需要关掉程序或者按ALT+TAB调出来,很影响使用,使用PopupParent属性可以解决该问题。

    以上方法也只能在当前进程内有效,如果想在所有进程都起作用,需要使用API:SetWindowPos,SetWindowPos实际中使用比较复杂, 因为用户使用过程中会不断改变窗体的顺序,所以需要在各种事件中重新调用SetWindowPos去设置位置,同时需要配合WS_EX_NOACTIVATE,具体请查看MSDN

 

转载于:https://www.cnblogs.com/caibirdy1985/p/4232939.html

你可能感兴趣的文章
安卓第十三天笔记-服务(Service)
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
Ajax : load()
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
Linux远程登录
查看>>
Linux自己安装redis扩展
查看>>
HDU 1016 Prime Ring Problem(dfs)
查看>>
C#中结构体与字节流互相转换
查看>>
session和xsrf
查看>>
跟随大神实现简单的Vue框架
查看>>
Linux目录结构
查看>>
LeetCode-Strobogrammatic Number
查看>>
luoguP3414 SAC#1 - 组合数
查看>>
五一 DAY 4
查看>>
(转)接口测试用例设计(详细干货)
查看>>
【译】SSH隧道:本地和远程端口转发
查看>>
win8.1安装Python提示缺失api-ms-win-crt-runtime-l1-1-0.dll问题
查看>>