gpt4 book ai didi

windows - 一个窗口可以总是在另一个窗口之上吗?

转载 作者:可可西里 更新时间:2023-11-01 12:31:03 25 4
gpt4 key购买 nike

在 Windows 中,是否可以将窗口 A 设置为始终位于窗口 B 之上,同时允许其他窗口正常工作并在激活时显示在两者之上。

换句话说,我想要两个窗口之间的父子关系。这可以在不使窗口 A 成为窗口 B 的子窗口(MDI 样式)的情况下完成吗?窗口 B 不是我的 (Internet Explorer),当我尝试使用 SetParent 实现此目的时,我的对话框 A 的图形搞砸了。

我想我已经用来自 MSDN forum post 的想法破解了它,但是窗口 A 仍然始终位于所有内容之上,而不仅仅是窗口 B。

// Place window A on top
SetWindowPos(hWndWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
// Place window B underneath it
SetWindowPos(hWndParent, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

这可能吗?

最佳答案

创建所有权关系不会成功吗?

SetWindowLong(hwndChild, GWL_HWNDPARENT, hwndOwner)

窗口可以在不同的进程中,您可以从任何进程调用它。这将确保子窗口始终位于所有者窗口之上。这与实际创建父/子关系的 SetParent 不同。 Read through this article (它来自 1993 年,但仍然基本正确)以了解所有权和养育子女之间的区别。

关于windows - 一个窗口可以总是在另一个窗口之上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/812686/

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