gpt4 book ai didi

windows - 创建一个与另一个表单具有相同 z 顺序的新表单

转载 作者:可可西里 更新时间:2023-11-01 10:40:47 27 4
gpt4 key购买 nike

Windows 窗体,.net 2.0

我的主应用程序线程有一个表单 (A)。我有一个后台线程,它运行一个定时器来确定一个事件已经发生——当它发生时,它会导致主应用程序表单隐藏(使用 BeginInvoke),并在它自己的线程(单独的)中创建一个新表单 (B)消息泵)。

两个线程的事情听起来很复杂,但不幸的是它是必需的。

新消息泵上的新表单显示在非最顶层表单的顶部(如您所料!)。但是,如果原始应用程序不在桌面上,这将非常烦人。

所以,我想在隐藏它之前确定原始形式(A)的z顺序是什么;然后创建我的新表单 (B) 以反射(reflect)原始表单的 z 顺序。

有什么想法吗?

[如果它在当前用户桌面上(即非密码),这也有表单 B 在屏幕保护程序上弹出的副作用,如果我不能按照上面的方式修复它,我会想避免这种情况...]

最佳答案

我通过使用 Win32 GetWindow 函数确定前一个窗口是我的主窗体来解决这个问题。然后,当我在第二个线程上创建新表单时,我可以使用 SetWindowPos 将 z 顺序设置为我在第一步中获得的值。

我还使用 nobugz 建议来确定该应用程序是否是焦点应用程序,如果不是,我将使用 ShowWithoutActivation 覆盖来确保我的新表单不会开始激活

关于windows - 创建一个与另一个表单具有相同 z 顺序的新表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143468/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com