我可以禁止在 Windows 上打开新窗口吗?我只是想防止另一个窗口偷走我的注意力,哪怕是一瞬间。
那可能吗 ?如果是的话怎么办?
// not sure if I can correct 1 letter mistakes on Stackoverfl0w
不,没有这样的事情(以“安全桌面”场景为模),这也是一件好事。为什么?因为不应该。这样的程序,如果编码,甚至不会让我点击我的任务栏......
想象一下,这样的功能是可用的。现在想象一下,两个应用程序都认为它们非常重要,以至于它们应该一直成为焦点。他们都会说“我非常重要。不要让任何人偷走我的注意力。” 然后什么?
这只是糟糕的设计。明智地设计您的程序,并意识到它非常非常非常不可能如此重要和如此令人惊叹,以至于用户不想切换到其他任何东西。
记住一个简单的事实:我的电脑属于我,而不是你,如果我想打开一个新窗口,你告诉我我不能打开一个新窗口?
您可以尝试使用 WM_ACTIVATE,一旦您收到 WA_INACTIVE,请将您的窗口设置回前台。也许您可以尝试使用 WM_KILLFOCUS 或其他一些函数来实现相同的技巧。您可以使用 Spy++ 来调查导致窗口失去焦点的消息。
我可以想象这样的“功能”将在嵌入式系统上的信息亭模式应用程序中使用,或者用于某种面向安全的应用程序。也许您可以更多地了解您的应用程序实际上想要做什么?