gpt4 book ai didi

c++ - 强制窗口位于最顶层的窗口之上(如任务管理器)

转载 作者:可可西里 更新时间:2023-11-01 10:56:52 26 4
gpt4 key购买 nike

<分区>

我有一个窗口,我想将其显示在所有其他内容之上。我的代码能够成功地强制它位于几乎每个窗口之上,除了其他最顶层的窗口。这是我使用的代码:

SetWindowPos(getSDLWindow(),HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

每次单击鼠标中键时都会执行此行(我使用鼠标钩来触发它)。

一旦我启动我的程序并单击一次中键,从那时起,我的窗口就会保持在所有“常规”窗口之上。

但是,所有“特殊窗口”似乎都与我的应用程序窗口属于同一类别,即聚焦时的特殊窗口显示在我的应用程序窗口上方。在这类特殊窗口中有任务栏(使用开始菜单似乎也可以激活)、右键单击菜单(即使由常规窗口生成)、任务管理器,我相信还有很多其他窗口。事实上,我相当确定“最顶层”的任何其他窗口都会以这种方式运行。似乎通过我的 SetWindowPos 调用,我将应用程序窗口的状态提升到了最顶层窗口。

巧妙的是,我可以启动任务管理器,将它移到我的应用程序窗口上方(这样它现在就覆盖了它),然后在任务管理器中单击鼠标中键,现在我的应用程序窗口会重新弹出(而焦点仍然在任务管理器上)。这很好,但我想更进一步,这样我的窗口将位于顶部无论如何

除了在循环中重复触发 SetWindowPos 之外,是否有任何方法可以实现此目的?如果可能的话,我想避免这种情况。

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